]> SALOME platform Git repositories - modules/yacs.git/blob - src/engine/OutPort.hxx
Salome HOME
177ca3c03e5715e76c0db8a112566236107a109e
[modules/yacs.git] / src / engine / OutPort.hxx
1 #ifndef __OUTPORT_HXX__
2 #define __OUTPORT_HXX__
3
4 #include "DataPort.hxx"
5 #include "Exception.hxx"
6
7 #include <set>
8 #include <vector>
9
10 namespace YACS
11 {
12   namespace ENGINE
13   {
14     class InPort;
15     class OutPort : public virtual DataPort
16     {
17     protected:
18       OutPort(const OutPort& other, Node *newHelder);
19       OutPort(const std::string& name, Node *node, TypeCode* type);
20     public:
21       virtual int edGetNumberOfOutLinks() const;
22       virtual std::set<InPort *> edSetInPort() const = 0;
23       virtual bool isAlreadyLinkedWith(InPort *with) const = 0;
24       virtual void getAllRepresented(std::set<OutPort *>& represented) const;
25       virtual bool addInPort(InPort *inPort) throw(Exception) = 0;
26       virtual int removeInPort(InPort *inPort, bool forward) throw(Exception) = 0;
27       virtual ~OutPort();
28       std::vector<DataPort *> calculateHistoryOfLinkWith(InPort *end);
29     };
30   }
31 }
32
33 #endif