Version: 8.3.0
CORBANode.hxx
Go to the documentation of this file.
1 // Copyright (C) 2006-2016 CEA/DEN, EDF R&D
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 
20 #ifndef _CORBANODE_HXX_
21 #define _CORBANODE_HXX_
22 
24 #include "ServiceNode.hxx"
25 #include "Mutex.hxx"
26 #include "yacsconfig.h"
27 #ifdef DSC_PORTS
28 #include "DSC_Engines.hh"
29 #endif
30 #include <omniORB4/CORBA.h>
31 #include <list>
32 
33 namespace YACS
34 {
35  namespace ENGINE
36  {
45  {
46  protected:
47  Node *simpleClone(ComposedNode *father, bool editionOnly) const;
48  public:
49  CORBANode(const CORBANode& other,ComposedNode *father);
50  CORBANode(const std::string& name);
51  virtual void execute();
52  virtual ServiceNode* createNode(const std::string& name);
53  virtual std::string getKind() const;
54  static const char KIND[];
55  virtual std::string typeName() {return "YACS__ENGINE__CORBANode";}
56  public:
57  static const char IMPL_NAME[];
58  };
59 
68  {
69  protected:
70  Node *simpleClone(ComposedNode *father, bool editionOnly) const;
71  public:
72  SalomeNode(const SalomeNode& other,ComposedNode *father);
73  SalomeNode(const std::string& name);
74  virtual ~SalomeNode();
75  virtual void execute();
76  virtual ServiceNode* createNode(const std::string& name);
77  virtual std::string getKind() const;
78  static const char KIND[];
79  virtual std::string typeName() {return "YACS__ENGINE__SalomeNode";}
80 #ifdef DSC_PORTS
81  virtual void initService();
82  virtual void connectService();
83  virtual void disconnectService();
84  virtual void cleanNodes();
85  std::list<Engines::ConnectionManager::connectionId> ids;
86  virtual void addDatastreamPortToInitMultiService(const std::string & port_name,
87  int number);
88 #endif
89  virtual void shutdown(int level);
90  virtual std::string getContainerLog();
91 
92  private:
93  YACS::BASES::Mutex _mutex;
94 #ifdef DSC_PORTS
95  Engines::Superv_Component::seq_multiple_param _param;
96 #endif
97  };
98  }
99 }
100 
101 #endif