Changeset 206 in dev for trunk/abdev/BasicCompiler_Common/include/MetaImpl.h
- Timestamp:
- Jul 12, 2007, 2:58:26 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler_Common/include/MetaImpl.h
r201 r206 3 3 #include <jenga/include/common/BoostXmlSupport.h> 4 4 5 #include <jenga/include/smoothie/ObjectModule.h> 5 #include <option.h> 6 #include <Program.h> 7 #include <Class.h> 8 #include <Procedure.h> 9 #include <TypeDef.h> 10 #include <Variable.h> 11 #include <Const.h> 6 12 7 #include <ClassImpl.h> 8 #include <ProcedureImpl.h> 9 #include <TypeDef.h> 10 11 class MetaImpl : public Meta, public Jenga::Common::BoostXmlSupport<MetaImpl> 13 class MetaImpl : public Jenga::Common::BoostXmlSupport<MetaImpl> 12 14 { 13 15 // 名前空間 14 16 NamespaceScopesCollection namespaceScopesCollection; 15 17 18 // 関数・メソッド 19 UserProcs userProcs; 20 16 21 // クラス 17 ClassesImpl classesImpl; 18 Classes *pNowClassesForDebugger; 22 Classes classesImpl; 23 24 // グローバル変数 25 Variables globalVars; 26 27 // グローバル定数 28 Consts globalConsts; 29 30 // グローバル定数マクロ 31 ConstMacros globalConstMacros; 19 32 20 33 // blittable型 … … 24 37 TypeDefCollection typeDefs; 25 38 39 // 関数ポインタ 40 ProcPointers procPointers; 41 42 // XMLシリアライズ用 43 private: 44 virtual const char *RootTagName() const 45 { 46 return "metaImpl"; 47 } 48 friend class boost::serialization::access; 49 template<class Archive> void serialize(Archive& ar, const unsigned int version) 50 { 51 trace_for_serialize( "serializing - MetaImpl" ); 52 53 ar & BOOST_SERIALIZATION_NVP( namespaceScopesCollection ); 54 ar & BOOST_SERIALIZATION_NVP( userProcs ); 55 ar & BOOST_SERIALIZATION_NVP( classesImpl ); 56 ar & BOOST_SERIALIZATION_NVP( globalVars ); 57 ar & BOOST_SERIALIZATION_NVP( globalConsts ); 58 ar & BOOST_SERIALIZATION_NVP( globalConstMacros ); 59 ar & BOOST_SERIALIZATION_NVP( blittableTypes ); 60 ar & BOOST_SERIALIZATION_NVP( typeDefs ); 61 ar & BOOST_SERIALIZATION_NVP( procPointers ); 62 } 63 64 Classes *pNowClassesForDebugger; 65 26 66 public: 27 67 MetaImpl() 28 : Meta( new ProcPointersImpl() ) 29 , classesImpl() 68 : classesImpl() 30 69 , pNowClassesForDebugger( &classesImpl ) 31 70 { … … 41 80 } 42 81 43 virtual Classes &GetClasses() 82 const UserProcs &GetUserProcs() const 83 { 84 return userProcs; 85 } 86 UserProcs &GetUserProcs() 87 { 88 return userProcs; 89 } 90 91 Classes &GetClasses() 44 92 { 45 93 return *pNowClassesForDebugger; 46 94 } 47 v irtual void SetClasses( Classes *pClasses )95 void SetClasses( Classes *pClasses ) 48 96 { 49 97 this->pNowClassesForDebugger = pClasses; 98 } 99 100 const Variables &GetGlobalVars() const 101 { 102 return globalVars; 103 } 104 Variables &GetGlobalVars() 105 { 106 return globalVars; 107 } 108 109 const Consts &GetGlobalConsts() const 110 { 111 return globalConsts; 112 } 113 Consts &GetGlobalConsts() 114 { 115 return globalConsts; 116 } 117 118 const ConstMacros &GetGlobalConstMacros() const 119 { 120 return globalConstMacros; 121 } 122 ConstMacros &GetGlobalConstMacros() 123 { 124 return globalConstMacros; 50 125 } 51 126 … … 60 135 } 61 136 62 virtual bool AutoWrite( const std::string &filePath ) 137 // 関数ポインタ 138 ProcPointers &GetProcPointers() 139 { 140 return procPointers; 141 } 142 143 bool AutoWrite( const std::string &filePath ) 63 144 { 64 145 std::ofstream ofs( filePath.c_str() ); … … 82 163 return isSuccessful; 83 164 } 84 85 86 // XMLシリアライズ用87 private:88 virtual const char *RootTagName() const89 {90 return "metaImpl";91 }92 friend class boost::serialization::access;93 template<class Archive> void serialize(Archive& ar, const unsigned int version)94 {95 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Meta );96 ar & BOOST_SERIALIZATION_NVP( classesImpl );97 }98 165 }; 99 BOOST_IS_ABSTRACT( Meta );
Note:
See TracChangeset
for help on using the changeset viewer.