]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/DEVEL/mathml_editor/src/ALogger.hh
reorganization continues ...
[helm.git] / helm / software / DEVEL / mathml_editor / src / ALogger.hh
diff --git a/helm/software/DEVEL/mathml_editor/src/ALogger.hh b/helm/software/DEVEL/mathml_editor/src/ALogger.hh
new file mode 100644 (file)
index 0000000..7843dbc
--- /dev/null
@@ -0,0 +1,53 @@
+/* This file is part of EdiTeX, an editor of mathematical
+ * expressions based on TeX syntax.
+ * 
+ * Copyright (C) 2002-2003 Luca Padovani <lpadovan@cs.unibo.it>,
+ *                    2003 Paolo Marinelli <pmarinel@cs.unibo.it>.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ * For more information, please visit the project's home page
+ * http://helm.cs.unibo.it/editex/
+ * or send an email to <lpadovan@cs.unibo.it>
+ */
+
+#ifndef __ALogger_hh__
+#define __ALogger_hh__
+
+#include <string>
+
+class ALogger
+{
+public:
+  enum Level { Error, Warning, Info, Debug };
+
+  ALogger(void) { level = Error; }
+  virtual ~ALogger() { }
+  void debug(const std::string& msg) { if (level >= Debug) message(Debug, msg); }
+  void info(const std::string& msg) { if (level >= Info) message(Info, msg); }
+  void warning(const std::string& msg) { if (level >= Warning) message(Warning, msg); }
+  void error(const std::string& msg) { if (level >= Error) message(Error, msg); }
+
+  Level verbosity(void) const { return level; }
+  void  verbosity(Level lvl) { level = lvl; }
+
+protected:
+  virtual void message(Level, const std::string&) = 0;
+
+private:
+  Level level;
+};
+
+#endif // __ALogger_hh__