#pragma once class ObjectModule : public Jenga::Common::BoostSerializationSupport { public: // メタ情報 Meta meta; // グローバル領域のネイティブコード NativeCode globalNativeCode; // データテーブル DataTable dataTable; // ソースコード BasicSource source; // XMLシリアライズ用 private: virtual const char *RootTagName() const { return "objectModule"; } friend class boost::serialization::access; template void serialize(Archive& ar, const unsigned int version) { trace_for_serialize( "serializing - objectModule" ); ar & BOOST_SERIALIZATION_NVP( meta ); ar & BOOST_SERIALIZATION_NVP( globalNativeCode ); ar & BOOST_SERIALIZATION_NVP( dataTable ); ar & BOOST_SERIALIZATION_NVP( source ); } public: void StaticLink( ObjectModule &objectModule ); bool Read( const std::string &filePath ); bool Write( const std::string &filePath ) const; bool ReadString( const std::string &str ); bool WriteString( std::string &str ) const; }; typedef std::vector ObjectModules;