00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef H2_OBJECT_H
00026 #define H2_OBJECT_H
00027
00028
00029 #include <iostream>
00030 #include <string>
00031 using std::string;
00032
00033
00034 class Object;
00035
00036
00040 class Logger {
00041 private:
00042
00043 public:
00045 Logger();
00046
00048 ~Logger();
00049
00051 void log(string logMsg);
00052
00054 void info(Object *obj, string logMsg);
00055
00057 void warning(Object *obj, string logMsg);
00058
00060 void error(Object *obj, string errorMsg);
00061
00062 };
00063
00064
00065
00069 class Object{
00070 private:
00071 static uint nObjects;
00072 Logger logger;
00073 public:
00075 Object();
00076 Object( const Object& obj );
00077
00079 virtual ~Object();
00080
00082 virtual string getClassName() = 0;
00083
00084 static uint getNObjects();
00085
00086
00087 void infoLog(string msg);
00088 void warningLog(string msg);
00089 void errorLog(string msg);
00090 };
00091
00092
00093
00094
00095
00096 #endif