Salome HOME
PR: first version from Antony GEAY, with directory restructuration
[modules/yacs.git] / src / engine / OutputDataStreamPort.hxx
1 #ifndef __OUTPUTDATASTREAMPORT_HXX__
2 #define __OUTPUTDATASTREAMPORT_HXX__
3
4 #include "OutPort.hxx"
5 #include "DataStreamPort.hxx"
6 #include "ConversionException.hxx"
7
8 #include <list>
9
10 namespace YACS
11 {
12   namespace ENGINE
13   {
14     class InputDataStreamPort;
15
16     class OutputDataStreamPort : public DataStreamPort, public OutPort
17     {
18     protected:
19       std::list<InputDataStreamPort *> _listOfInputDataStreamPort;
20     public:
21       static const char NAME[];
22     public:
23       OutputDataStreamPort(const std::string& name, Node *node, StreamType type);
24       std::string getNameOfTypeOfCurrentInstance() const;
25       bool edAddInputDataStreamPort(InputDataStreamPort *port) throw(ConversionException);
26       void edRemoveInputDataStreamPort(InputDataStreamPort *inputPort);
27       bool addInPort(InPort *inPort) throw(Exception);
28       void removeInPort(InPort *inPort) throw(Exception);
29       bool isLinked();
30     private:
31       bool isAlreadyInList(InputDataStreamPort *inputPort) const;
32     };
33   }
34 }
35
36 #endif