00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef HxTracedObject_h
00010 #define HxTracedObject_h
00011
00012 #define TRACED_OBJECT
00013
00014 #ifndef TRACED_OBJECT
00015 #define TRACED_OBJECT : public HxTracedObject
00016 #endif
00017
00018 #include <vector>
00019
00020 #include "HxString.h"
00021 #include "HxIoFwd.h"
00022
00023 class L_HXBASIS HxTracedObject
00024 {
00025 public:
00026 HxTracedObject();
00027 virtual ~HxTracedObject();
00028
00029 void traceUpdate();
00030 STD_OSTREAM& tracePut(STD_OSTREAM&) const;
00031
00032 static void traceUpdateAll();
00033 static STD_OSTREAM& tracePutAll(STD_OSTREAM&);
00034
00035 private:
00036 typedef std::vector<HxTracedObject*> TracedObjectList;
00037
00038 HxString _typeName;
00039
00040 #pragma warning(disable: 4251)
00041 static TracedObjectList& _theList();
00042 #pragma warning(default: 4251)
00043 };
00044
00045 #endif