00001 #ifndef OBJECT_H
00002 #define OBJECT_H
00003
00004 #include <is/info.h>
00005
00006 #include <string>
00007 #include <vector>
00008
00009
00010
00011
00012
00013
00014 namespace oh
00015 {
00023 class Object : public ISInfo {
00024 public:
00025
00029 std::vector<std::string> annotations;
00030
00031
00032 static const ISType & type() {
00033 static const ISType type_ = Object( ).ISInfo::type();
00034 return type_;
00035 }
00036
00037 Object( )
00038 : ISInfo( "Object" )
00039 {
00040 initialize();
00041 }
00042
00043 ~Object(){
00044
00045
00046
00047
00048 }
00049
00050 protected:
00051 Object( const std::string & type )
00052 : ISInfo( type )
00053 {
00054 initialize();
00055 }
00056
00057 void publishGuts( ISostream & out ){
00058 out << annotations;
00059 }
00060
00061 void refreshGuts( ISistream & in ){
00062 in >> annotations;
00063 }
00064
00065 private:
00066 void initialize()
00067 {
00068
00069
00070
00071
00072 }
00073
00074
00075
00076
00077
00078 };
00079
00080
00081
00082
00083 }
00084
00085 #endif // OBJECT_H