Rev | Line | |
---|
[170] | 1 | #pragma once
|
---|
| 2 |
|
---|
[187] | 3 | #include <jenga/include/common/BoostXmlSupport.h>
|
---|
| 4 |
|
---|
[170] | 5 | #include "TypeDef.h"
|
---|
| 6 | #include "Namespace.h"
|
---|
| 7 | #include "Procedure.h"
|
---|
[172] | 8 | #include "Class.h"
|
---|
[170] | 9 |
|
---|
| 10 | // プロジェクト中に存在するメタ情報
|
---|
[187] | 11 | class Meta : public Jenga::Common::BoostXmlSupport<Meta>
|
---|
| 12 | {
|
---|
[180] | 13 | Classes *pClasses;
|
---|
[181] | 14 | ProcPointers *pProcPointers;
|
---|
[170] | 15 | public:
|
---|
[180] | 16 |
|
---|
[181] | 17 | Meta( Classes *pNewClasses, ProcPointers *pNewProcPointers )
|
---|
[180] | 18 | : pClasses( pNewClasses )
|
---|
[181] | 19 | , pProcPointers( pNewProcPointers )
|
---|
[180] | 20 | {
|
---|
| 21 | }
|
---|
| 22 | ~Meta()
|
---|
| 23 | {
|
---|
| 24 | delete pClasses;
|
---|
[181] | 25 | delete pProcPointers;
|
---|
[180] | 26 | }
|
---|
| 27 |
|
---|
[170] | 28 | // 名前空間
|
---|
| 29 | NamespaceScopesCollection namespaceScopesCollection;
|
---|
| 30 |
|
---|
| 31 | // クラス
|
---|
[180] | 32 | Classes &GetClasses()
|
---|
| 33 | {
|
---|
| 34 | return *pClasses;
|
---|
| 35 | }
|
---|
[181] | 36 | void SetClasses( Classes *pClasses )
|
---|
| 37 | {
|
---|
| 38 | this->pClasses = pClasses;
|
---|
| 39 | }
|
---|
[170] | 40 |
|
---|
| 41 | // TypeDef
|
---|
| 42 | TypeDefCollection typeDefs;
|
---|
| 43 |
|
---|
| 44 | // 関数ポインタ
|
---|
[181] | 45 | ProcPointers &GetProcPointers()
|
---|
| 46 | {
|
---|
| 47 | return *pProcPointers;
|
---|
| 48 | }
|
---|
[170] | 49 |
|
---|
| 50 | // blittable型
|
---|
| 51 | BlittableTypes blittableTypes;
|
---|
[187] | 52 |
|
---|
| 53 | // XMLシリアライズ用
|
---|
| 54 | private:
|
---|
| 55 | virtual const char *RootTagName() const
|
---|
| 56 | {
|
---|
| 57 | return "meta";
|
---|
| 58 | }
|
---|
| 59 | friend class boost::serialization::access;
|
---|
| 60 | template<class Archive> void serialize(Archive& ar, const unsigned int version)
|
---|
| 61 | {
|
---|
| 62 | //ar & BOOST_SERIALIZATION_NVP( pClasses );
|
---|
| 63 | }
|
---|
[170] | 64 | };
|
---|
[187] | 65 |
|
---|
| 66 |
|
---|
| 67 | #define DEF_XML_SCHEMA( node ) BOOST_CLASS_IMPLEMENTATION( node, boost::serialization::object_serializable );
|
---|
| 68 |
|
---|
| 69 | // ノード クラスを追加したらここでも定義する
|
---|
| 70 | DEF_XML_SCHEMA( Meta )
|
---|
| 71 |
|
---|
| 72 | #undef DEF_XML_SCHEMA
|
---|
Note:
See
TracBrowser
for help on using the repository browser.