Salome HOME
merge from branch DEV tag mergeto_trunk_04apr08
[modules/yacs.git] / src / engine / VisitorSaveState.hxx
1 #ifndef __VISITOR_SAVESTATE_HXX__
2 #define __VISITOR_SAVESTATE_HXX__
3
4 #include "Visitor.hxx"
5 #include "Exception.hxx"
6
7 #include <fstream>
8 #include <string>
9 #include <map>
10
11 namespace YACS
12 {
13   namespace ENGINE
14   {
15     class VisitorSaveState: public Visitor
16     {
17     public:
18       VisitorSaveState(ComposedNode *root);
19       virtual ~VisitorSaveState();
20       void openFileDump(std::string xmlDump) throw(Exception);
21       void closeFileDump();
22       virtual void visitBloc(Bloc *node);
23       virtual void visitElementaryNode(ElementaryNode *node);
24       virtual void visitForEachLoop(ForEachLoop *node);
25       virtual void visitForLoop(ForLoop *node);
26       virtual void visitInlineNode(InlineNode *node);
27       virtual void visitInlineFuncNode(InlineFuncNode *node);
28       virtual void visitLoop(Loop *node);
29       virtual void visitProc(Proc *node);
30       virtual void visitServiceNode(ServiceNode *node);
31       virtual void visitServiceInlineNode(ServiceInlineNode *node);
32       virtual void visitSwitch(Switch *node);
33       virtual void visitWhileLoop(WhileLoop *node);
34       virtual void visitPresetNode(DataNode *node);
35       virtual void visitOutNode(DataNode *node);
36       virtual void visitStudyInNode(DataNode *node);
37       virtual void visitStudyOutNode(DataNode *node);
38
39     protected:
40       std::ofstream _out;
41       std::map<int, std::string> _nodeStateName;
42     };
43   }
44 }
45 #endif