summaryrefslogtreecommitdiff
path: root/src/include/iofactory.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/iofactory.h')
-rw-r--r--src/include/iofactory.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/include/iofactory.h b/src/include/iofactory.h
new file mode 100644
index 0000000..6ebccaa
--- /dev/null
+++ b/src/include/iofactory.h
@@ -0,0 +1,53 @@
+/** --------------------------------------------------------------------
+ * @file iofactory.h
+ * @brief Declaration of the IOFactory class.
+ * @author Andreas Aardal Hanssen
+ * @date 2002, 2003
+ * ----------------------------------------------------------------- **/
+#ifndef IOFACTORY_H_INCLUDED
+#define IOFACTORY_H_INCLUDED
+#include <map>
+#include <string>
+
+#include "iodevice.h"
+
+namespace Binc {
+ class IOFactory {
+ public:
+ ~IOFactory(void);
+
+ static void addDevice(IODevice *dev);
+ static IOFactory &getInstance(void);
+ static IODevice &getClient(void);
+ static IODevice &getLogger(void);
+
+ private:
+ IOFactory(void);
+
+ std::map<std::string, IODevice *> devices;
+ };
+}
+
+#define bincClient \
+ IOFactory::getClient()
+
+#if defined (DEBUG)
+//#define bincError if (false) std::cout
+#define bincError std::cerr
+// #define bincWarning if (false) std::cout
+#define bincWarning std::cerr
+#define bincDebug std::cerr
+//#define bincDebug if (false) std::cout
+#else
+#define bincError \
+ IOFactory::getLogger().setOutputLevel(IODevice::ErrorLevel);IOFactory::getLogger()
+#define bincWarning \
+ IOFactory::getLogger().setOutputLevel(IODevice::WarningLevel);IOFactory::getLogger()
+#define bincDebug \
+ IOFactory::getLogger().setOutputLevel(IODevice::DebugLevel);IOFactory::getLogger()
+#endif
+
+#define bincLog \
+ IOFactory::getLogger().setOutputLevel(IODevice::InfoLevel);IOFactory::getLogger()
+
+#endif