Version: 8.3.0
resume.cxx File Reference
#include "RuntimeSALOME.hxx"
#include "Proc.hxx"
#include "Exception.hxx"
#include "Executor.hxx"
#include "parsers.hxx"
#include "VisitorSaveState.hxx"
#include "LoadState.hxx"
#include <iostream>
#include <fstream>
Include dependency graph for resume.cxx:

Go to the source code of this file.

Functions

int main (int argc, char *argv[])
 

Function Documentation

int main ( int  argc,
char *  argv[] 
)

Definition at line 38 of file resume.cxx.

References YACS::ENGINE::Proc::accept(), YACS::ENGINE::VisitorSaveState::closeFileDump(), display(), YACS::ENGINE::Bloc::exUpdateState(), gui.CONNECTOR::f(), YACS::ENGINE::Runtime::fini(), YACS::ENGINE::getRuntime(), YACS::ENGINE::Bloc::init(), YACS::YACSLoader::load(), loader, YACS::ENGINE::VisitorSaveState::openFileDump(), p, YACS::ENGINE::stateLoader::parse(), YACS::ENGINE::Executor::RunW(), YACS::ENGINE::RuntimeSALOME::setRuntime(), YACS::Exception::what(), and YACS::ENGINE::Proc::writeDot().

39 {
40  if (argc != 3 && argc != 4)
41  {
42  cerr << "usage: " << argv[0] << " [--display=n] schema.xml state.xml" << endl;
43  return 1;
44  }
45  int display=0;
46  int argfile=1;
47  int argState=2;
48  if(argc == 4)
49  {
50  argfile=2;
51  argState=3;
52  if(std::string(argv[1]) == "--display=1")
53  display=1;
54  else if(std::string(argv[1]) == "--display=2")
55  display=2;
56  else if(std::string(argv[1]) == "--display=3")
57  display=3;
58  }
59 
60  RuntimeSALOME::setRuntime();
61 
63  Executor executor;
64 
65  try
66  {
67  Proc* p=loader.load(argv[argfile]);
68  p->init();
69  p->exUpdateState();
70  stateParser* rootParser = new stateParser();
71  stateLoader myStateLoader(rootParser, p);
72  myStateLoader.parse(argv[argState]);
73 
74  std::ofstream f("toto");
75  p->writeDot(f);
76  f.close();
77  cerr << "+++++++++++++++++++ start calculation +++++++++++++++++++" << endl;
78  executor.RunW(p, display, false);
79  cerr << "+++++++++++++++++++ end calculation +++++++++++++++++++" << endl;
80  std::ofstream g("titi");
81  p->writeDot(g);
82  g.close();
84  vst.openFileDump("dumpState.xml");
85  p->accept(&vst);
86  vst.closeFileDump();
87  delete p;
89  return 0;
90  }
91  catch (YACS::Exception& e)
92  {
93  cerr << "Caught a YACS exception" << endl;
94  cerr << e.what() << endl;
96  return 1;
97  }
98  catch (const std::ios_base::failure&)
99  {
100  cerr << "Caught an io failure exception" << endl;
101  return 1;
102  }
103  catch(CORBA::SystemException& ex)
104  {
105  cerr << "Caught a CORBA::SystemException." ;
106  CORBA::Any tmp;
107  tmp <<= ex;
108  CORBA::TypeCode_var tc = tmp.type();
109  const char *p = tc->name();
110  if ( *p != '\0' )
111  cerr <<p;
112  else
113  cerr << tc->id();
114  cerr << endl;
115  return 1;
116  }
117  catch(omniORB::fatalException& fe)
118  {
119  cerr << "Caught omniORB::fatalException:" << endl;
120  cerr << " file: " << fe.file() << endl;
121  cerr << " line: " << fe.line() << endl;
122  cerr << " mesg: " << fe.errmsg() << endl;
123  return 1;
124  }
125  catch(...)
126  {
127  cerr << "Caught unknown exception." << endl;
128  return 1;
129  }
130 }