diff --git a/src/interface/Interval_select.cpp b/src/interface/Interval_select.cpp index c7681ae17f3c76cd9db8ff207fb44742200a9643..6ac05e2ce455a657c932a57c375adbad8a61bbd4 100644 --- a/src/interface/Interval_select.cpp +++ b/src/interface/Interval_select.cpp @@ -71,7 +71,7 @@ #include "interface/Interval_select.hpp" -#include "limits.h" +#include using namespace std; diff --git a/src/parser/ParserSplitted.cpp b/src/parser/ParserSplitted.cpp index 97a9f9d5dd39ba8bf24c146245a56a35a80522b8..23439141901272cd73018d08e3da1fb7d8a06166 100644 --- a/src/parser/ParserSplitted.cpp +++ b/src/parser/ParserSplitted.cpp @@ -70,66 +70,79 @@ Serializer::Instance().clear(); Serializer::Instance().clear(); Serializer::Instance().clear(); - std::list conts_types; + std::list conts_types; std::list conts; - std::ifstream ifs(_file_to_parse.c_str()); - boost::archive::text_iarchive ia(ifs); - ia.register_type(static_cast(NULL)); - ia.register_type(static_cast(NULL)); - ia.register_type(static_cast(NULL)); - ia.register_type(static_cast(NULL)); - ia.register_type(static_cast(NULL)); - ia.register_type(static_cast(NULL)); - ia.register_type(static_cast(NULL)); - ia.register_type(static_cast(NULL)); - ia.register_type(static_cast(NULL)); - ia.register_type(static_cast(NULL)); - ia.register_type(static_cast(NULL)); - ia.register_type(static_cast(NULL)); - ia.register_type(static_cast(NULL)); - ia >> conts_types; - trace.set_container_types(conts_types); - //int test; - //ia >> test; - // restore the schedule from the archive - ia >> conts; + std::ifstream ifs(_file_to_parse.c_str(),std::ios::in); + if(ifs.fail()) + { + message << "Error while opening file" << _file_to_parse << Message::ende; + return; + } + QT_TRY { + boost::archive::text_iarchive ia(ifs); + + ia.register_type(static_cast(NULL)); + ia.register_type(static_cast(NULL)); + ia.register_type(static_cast(NULL)); + ia.register_type(static_cast(NULL)); + ia.register_type(static_cast(NULL)); + ia.register_type(static_cast(NULL)); + ia.register_type(static_cast(NULL)); + ia.register_type(static_cast(NULL)); + ia.register_type(static_cast(NULL)); + ia.register_type(static_cast(NULL)); + ia.register_type(static_cast(NULL)); + ia.register_type(static_cast(NULL)); + ia.register_type(static_cast(NULL)); + + printf("test : %d\n", ia.get_library_version()); + ia >> conts_types; + trace.set_container_types(conts_types); + //int test; + //ia >> test; + // restore the schedule from the archive + ia >> conts; - trace.set_root_containers(conts); + trace.set_root_containers(conts); - if(Info::Splitter::xml_filename.length()!=0)//we need to load a config from file - { - bool xml_success = trace.load_config_from_xml(QString(Info::Splitter::xml_filename.c_str())); - if(!xml_success){ - message << "Error while parsing" << Info::Splitter::xml_filename << Message::ende; - } - } + if(Info::Splitter::xml_filename.length()!=0)//we need to load a config from file + { + bool xml_success = trace.load_config_from_xml(QString(Info::Splitter::xml_filename.c_str())); + if(!xml_success){ + std::cerr << "Error while parsing" << Info::Splitter::xml_filename << std::endl; + } + } - std::map _state_types; - std::map _event_types; - std::map _link_types; - std::map _variable_types; + std::map _state_types; + std::map _event_types; + std::map _link_types; + std::map _variable_types; - ia >> _state_types; - trace.set_state_types(_state_types); + ia >> _state_types; + trace.set_state_types(_state_types); - ia >> _event_types; - trace.set_event_types(_event_types); + ia >> _event_types; + trace.set_event_types(_event_types); - ia >> _link_types; - trace.set_link_types(_link_types); + ia >> _link_types; + trace.set_link_types(_link_types); - ia >> _variable_types; - trace.set_variable_types(_variable_types); - - Date d; - ia >>d; - trace.set_max_date(d); + ia >> _variable_types; + trace.set_variable_types(_variable_types); + Date d; + ia >>d; + trace.set_max_date(d); + }QT_CATCH(boost::archive::archive_exception e) { + std::cerr << "failed while restoring serialized file !" << e.what() << " with file " << _file_to_parse <launch_action(_core->_STATE_ZOOM_BOX_VALUE, &buf); - // updateRender(); + updateRender(); refresh_scroll_bars(true); } } diff --git a/src/trace/Trace.cpp b/src/trace/Trace.cpp index 7c2d9ec1d362b2238b7a9e743cb53a8cfb545da7..c7c17a36832286cae33c5a02112bbf5a683e5244 100644 --- a/src/trace/Trace.cpp +++ b/src/trace/Trace.cpp @@ -518,7 +518,7 @@ void Trace::dump(std::string path, std::string filename) { std::string file; file += path + "/" + filename + "/" + filename +".vite"; // i = _root_containers.begin(); - std::ofstream ofs(file.c_str()); + std::ofstream ofs(file.c_str(),std::ios::out); boost::archive::text_oarchive oa(ofs);