Salome HOME
merge from branch DEV tag mergeto_trunk_04apr08
[modules/yacs.git] / src / runtime / StudyNodes.hxx
1 #ifndef _STUDYNODES_HXX_
2 #define _STUDYNODES_HXX_
3
4 #include "DataNode.hxx"
5
6 namespace YACS
7 {
8   namespace ENGINE
9   {
10     class StudyInNode: public DataNode
11     {
12     protected:
13       Node *simpleClone(ComposedNode *father, bool editionOnly) const;
14     public:
15       StudyInNode(const std::string& name);
16       StudyInNode(const StudyInNode& other, ComposedNode *father);
17       virtual void execute();
18       virtual void accept(Visitor *visitor);
19       virtual void checkBasicConsistency() const throw(Exception);
20       virtual void setData(OutputPort* port, std::string& data);
21       virtual OutputPort *createOutputPort(const std::string& outputPortName, TypeCode* type);
22     public:
23       static const char IMPL_NAME[];
24     };
25     class StudyOutNode: public DataNode
26     {
27     protected:
28       Node *simpleClone(ComposedNode *father, bool editionOnly) const;
29     public:
30       StudyOutNode(const std::string& name);
31       StudyOutNode(const StudyOutNode& other, ComposedNode *father);
32       virtual void execute();
33       virtual void accept(Visitor *visitor);
34       virtual void checkBasicConsistency() const throw(Exception);
35       virtual void setData(InputPort* port, std::string& data);
36       virtual InputPort *createInputPort(const std::string& inputPortName, TypeCode* type);
37     public:
38       static const char IMPL_NAME[];
39     };
40   }
41 }
42
43 #endif