]> SALOME platform Git repositories - modules/yacs.git/blob - src/engine/OutPort.hxx
Salome HOME
0dec8538ea48ee752269e70bf7ba89d633e01f0d
[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 LinkInfo;
16     class OutPort : public virtual DataPort
17     {
18     protected:
19       OutPort(const OutPort& other, Node *newHelder);
20       OutPort(const std::string& name, Node *node, TypeCode* type);
21     public:
22       virtual void checkConsistency(LinkInfo& info) const;
23       virtual int edGetNumberOfOutLinks() const;
24       virtual std::set<InPort *> edSetInPort() const = 0;
25       virtual bool isAlreadyLinkedWith(InPort *with) const = 0;
26       virtual void getAllRepresented(std::set<OutPort *>& represented) const;
27       virtual bool addInPort(InPort *inPort) throw(Exception) = 0;
28       virtual int removeInPort(InPort *inPort, bool forward) throw(Exception) = 0;
29       virtual ~OutPort();
30       std::vector<DataPort *> calculateHistoryOfLinkWith(InPort *end);
31       virtual std::string typeName() {return "YACS__ENGINE__OutPort";}
32     };
33   }
34 }
35
36 #endif