Ignore:
Timestamp:
Jul 3, 2007, 3:49:18 AM (17 years ago)
Author:
dai_9181
Message:

jengaライブラリに一通りserializeメソッドを仕込んだ

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/jenga/include/smoothie/Procedure.h

    r192 r203  
    1616
    1717private:
    18     const string name;                      // プロシージャ名
     18    string name;                        // プロシージャ名
    1919
    2020    Kind kind;
     
    3333    // ソースコードの位置
    3434    int codePos;
     35
     36    // XMLシリアライズ用
     37private:
     38    friend class boost::serialization::access;
     39    template<class Archive> void serialize(Archive& ar, const unsigned int version)
     40    {
     41        ar & BOOST_SERIALIZATION_NVP( name );
     42        ar & BOOST_SERIALIZATION_NVP( kind );
     43        ar & BOOST_SERIALIZATION_NVP( isCdecl );
     44        ar & BOOST_SERIALIZATION_NVP( isUsing );
     45        ar & BOOST_SERIALIZATION_NVP( params );
     46        ar & BOOST_SERIALIZATION_NVP( returnType );
     47        ar & BOOST_SERIALIZATION_NVP( codePos );
     48    }
    3549
    3650public:
     
    112126    bool isCompiled;
    113127
    114 public:
    115 
    116     void Serialize( bool isRead )
    117     {
    118 
    119     }
     128    // XMLシリアライズ用
     129    // TODO: xml実装(publicなクラスが残っている)
     130private:
     131    friend class boost::serialization::access;
     132    template<class Archive> void serialize(Archive& ar, const unsigned int version)
     133    {
     134        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Procedure );
     135        ar & BOOST_SERIALIZATION_NVP( _paramStr );
     136        ar & BOOST_SERIALIZATION_NVP( secondParmNum );
     137        ar & BOOST_SERIALIZATION_NVP( realParams );
     138        ar & BOOST_SERIALIZATION_NVP( realSecondParmNum );
     139        ar & BOOST_SERIALIZATION_NVP( pParentClass );
     140        ar & BOOST_SERIALIZATION_NVP( pMethod );
     141        ar & BOOST_SERIALIZATION_NVP( isExport );
     142        ar & BOOST_SERIALIZATION_NVP( isSystem );
     143        ar & BOOST_SERIALIZATION_NVP( isAutoGeneration );
     144        ar & BOOST_SERIALIZATION_NVP( isCompiled );
     145    }
     146
     147public:
    120148
    121149    UserProc( const string &name, Kind kind, bool isMacro, bool isCdecl, bool isExport ):
     
    260288class DllProc : public Procedure
    261289{
    262     const NamespaceScopes namespaceScopes;
    263 
    264     const string dllFileName;
    265     const string alias;
     290    NamespaceScopes namespaceScopes;
     291
     292    string dllFileName;
     293    string alias;
    266294    int lookupAddress;
     295
     296    // XMLシリアライズ用
     297private:
     298    friend class boost::serialization::access;
     299    template<class Archive> void serialize(Archive& ar, const unsigned int version)
     300    {
     301        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Procedure );
     302        ar & BOOST_SERIALIZATION_NVP( namespaceScopes );
     303        ar & BOOST_SERIALIZATION_NVP( dllFileName );
     304        ar & BOOST_SERIALIZATION_NVP( alias );
     305        ar & BOOST_SERIALIZATION_NVP( lookupAddress );
     306    }
    267307
    268308public:
     
    312352class ProcPointer : public Procedure
    313353{
     354    // XMLシリアライズ用
     355private:
     356    friend class boost::serialization::access;
     357    template<class Archive> void serialize(Archive& ar, const unsigned int version)
     358    {
     359        ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP( Procedure );
     360    }
     361
    314362public:
    315363    ProcPointer( Kind kind ):
     
    323371class ProcPointers : public vector<ProcPointer *>
    324372{
     373    // XMLシリアライズ用
     374private:
     375    friend class boost::serialization::access;
     376    template<class Archive> void serialize(Archive& ar, const unsigned int version)
     377    {
     378        ar & boost::serialization::make_nvp("vector_ProcPointer", boost::serialization::base_object<vector<ProcPointer *>>(*this));
     379    }
     380
    325381public:
    326382    ProcPointers()
Note: See TracChangeset for help on using the changeset viewer.