Salome HOME
copy tag mergefrom_BR_V0_1_CC_Salome_04oct07
[modules/yacs.git] / src / engine / OutPort.hxx
index 500c101c391f2a2afe5aaa374a550ba82f68bd39..177ca3c03e5715e76c0db8a112566236107a109e 100644 (file)
@@ -1,21 +1,31 @@
 #ifndef __OUTPORT_HXX__
 #define __OUTPORT_HXX__
 
-#include "Port.hxx"
+#include "DataPort.hxx"
 #include "Exception.hxx"
 
+#include <set>
+#include <vector>
+
 namespace YACS
 {
   namespace ENGINE
   {
     class InPort;
-    class OutPort : public virtual Port
+    class OutPort : public virtual DataPort
     {
     protected:
-      OutPort(Node *node);
+      OutPort(const OutPort& other, Node *newHelder);
+      OutPort(const std::string& name, Node *node, TypeCode* type);
     public:
+      virtual int edGetNumberOfOutLinks() const;
+      virtual std::set<InPort *> edSetInPort() const = 0;
+      virtual bool isAlreadyLinkedWith(InPort *with) const = 0;
+      virtual void getAllRepresented(std::set<OutPort *>& represented) const;
       virtual bool addInPort(InPort *inPort) throw(Exception) = 0;
-      virtual void removeInPort(InPort *inPort) throw(Exception) = 0;
+      virtual int removeInPort(InPort *inPort, bool forward) throw(Exception) = 0;
+      virtual ~OutPort();
+      std::vector<DataPort *> calculateHistoryOfLinkWith(InPort *end);
     };
   }
 }