Salome HOME
PR: first version from Antony GEAY, with directory restructuration
[modules/yacs.git] / src / engine / OutGate.hxx
1 #ifndef __OUTGATE_HXX__
2 #define __OUTGATE_HXX__
3
4 #include "Port.hxx"
5 #include "Exception.hxx"
6
7 #include <list>
8
9 namespace YACS
10 {
11   namespace ENGINE
12   {
13     class InGate;
14     
15     class OutGate : public Port
16     {
17     protected:
18       std::list<InGate *> _listOfInGate;
19     public:
20       static const char NAME[];
21     public:
22       OutGate(Node *node);
23       std::string getNameOfTypeOfCurrentInstance() const;
24       void exNotifyDone();
25       bool edAddInGate(InGate *inGate);
26       std::list<InGate *> edListInGate() const;
27       void edRemoveInGate(InGate *inGate) throw(Exception);
28       int getNbOfInGatesConnected() const;
29     protected:
30       bool isAlreadyInList(InGate *inGate) const;
31     };
32   }
33 }
34
35 #endif