Ignore:
Timestamp:
Aug 6, 2007, 9:31:22 AM (17 years ago)
Author:
dai_9181
Message:

デバッグデータとしてオブジェクトモジュールのシリアライズを可能にした(その先の処理はまだ動かない)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler_Common/src/BoostSerializationSupport.cpp

    r256 r264  
    270270}
    271271
    272 template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::ReadXmlFromString( const string &xmlBuffer )
    273 {
    274     bool isSuccessful = false;
    275 
    276     // 入力アーカイブの作成
    277     std::istringstream iss( xmlBuffer );
     272template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::ReadTextString( const std::string &textString )
     273{
     274    bool isSuccessful = false;
     275
     276    // 入力アーカイブの作成
     277    std::istringstream iss( textString );
     278
     279    try{
     280        boost::archive::text_iarchive ia(iss);
     281
     282        // 文字列ストリームから読込
     283        ia >> boost::serialization::make_nvp( RootTagName(), *(T_xml_schema *)this );
     284
     285        isSuccessful = true;
     286    }
     287    catch(...){
     288        // 失敗
     289    }
     290
     291    if( !isSuccessful )
     292    {
     293        return false;
     294    }
     295
     296    return true;
     297}
     298template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::WriteTextString( std::string &textString ) const
     299{
     300    // 出力アーカイブの作成
     301    std::ostringstream oss;
     302
     303    bool isSuccessful = false;
     304    try{
     305        boost::archive::text_oarchive oa(oss);
     306
     307        // 文字列ストリームに書き出し
     308        oa << boost::serialization::make_nvp( RootTagName(), *(T_xml_schema *)this );
     309
     310        isSuccessful = true;
     311    }
     312    catch( boost::archive::archive_exception e )
     313    {
     314        echo( e.what() );
     315    }
     316    catch(...){
     317        echo( "archive_exception以外の不明な例外" );
     318    }
     319
     320    if( !isSuccessful )
     321    {
     322        return false;
     323    }
     324
     325    textString = oss.str();
     326
     327    return true;
     328}
     329
     330template<class T_xml_schema> bool BoostSerializationSupport<T_xml_schema>::ReadXmlFromString( const std::string &textString )
     331{
     332    bool isSuccessful = false;
     333
     334    // 入力アーカイブの作成
     335    std::istringstream iss( textString );
    278336
    279337    try{
Note: See TracChangeset for help on using the changeset viewer.