Salome HOME
merge from branch DEV tag mergeto_trunk_04apr08
[modules/yacs.git] / src / engine / Logger.hxx
diff --git a/src/engine/Logger.hxx b/src/engine/Logger.hxx
new file mode 100644 (file)
index 0000000..56301f4
--- /dev/null
@@ -0,0 +1,39 @@
+#ifndef _LOGGER_HXX_
+#define _LOGGER_HXX_
+
+#include <string>
+#include <vector>
+
+namespace YACS
+{
+  namespace ENGINE
+  {
+    class LogRecord;
+
+/*! \brief Class for logging error messages
+ *
+ */
+    class Logger
+    {
+    public:
+      Logger(const std::string& name);
+      virtual ~Logger();
+      virtual const std::string& getName();
+      virtual void log(int level,const std::string& message,const char* filename,int line);
+      virtual void error(const std::string& message,const char* filename,int line);
+      virtual void fatal(const std::string& message,const char* filename,int line);
+      virtual void warning(const std::string& message,const char* filename,int line);
+      virtual LogRecord* makeRecord(const std::string& name,int level,const std::string& message,const char* filename,int line);
+      virtual void handle(LogRecord* record);
+      virtual void reset();
+      virtual std::string getStr();
+      virtual bool isEmpty();
+      virtual bool hasErrors();
+    protected:
+      std::string _name;
+      std::vector<LogRecord*> _records;
+    };
+  }
+}
+
+#endif