Version: 8.3.0
DSC_interface.hxx
Go to the documentation of this file.
1 // Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 
23 // File : DSC_interface.hxx
24 // Author : André RIBES (EDF)
25 // Module : KERNEL
26 //
27 #ifndef _DSC_INTERFACE_HXX_
28 #define _DSC_INTERFACE_HXX_
29 
30 #include <iostream>
31 #include <map>
32 #include <string.h>
33 #include <assert.h>
34 
35 #include "DSC_Callbacks.hxx"
36 
44  public DSC_Callbacks
45 {
46 public:
48  virtual ~Engines_DSC_interface();
49 
53  virtual void add_provides_port(Ports::Port_ptr ref,
54  const char* provides_port_name,
55  Ports::PortProperties_ptr port_prop)
59 
63  virtual void add_uses_port(const char* repository_id,
64  const char* uses_port_name,
65  Ports::PortProperties_ptr port_prop)
68 
72  virtual Ports::Port_ptr get_provides_port(const char* provides_port_name,
73  const CORBA::Boolean connection_error)
77 
81  virtual Engines::DSC::uses_port * get_uses_port(const char* uses_port_name)
85 
94  virtual void connect_provides_port(const char* provides_port_name)
96 
103  virtual void connect_uses_port(const char* uses_port_name,
104  Ports::Port_ptr provides_port_ref)
108 
112  virtual CORBA::Boolean is_connected(const char* port_name)
114 
123  virtual void disconnect_provides_port(const char* provides_port_name,
124  const Engines::DSC::Message message)
127 
139  virtual void disconnect_uses_port(const char* uses_port_name,
140  Ports::Port_ptr provides_port_ref,
141  const Engines::DSC::Message message)
145 
149  virtual Ports::PortProperties_ptr get_port_properties(const char* port_name)
151 
152  static void writeEvent(const char* request,const std::string& containerName, const char* instance_name,
153  const char* port_name, const char* error, const char* message);
154 
155 protected:
156 
157  /*-------------------------------------------------*/
158  /* Definition des types pour le stockage des ports */
159 
161 
162  struct port_t {
165 
166  // Specifique aux uses port
168  std::string repository_id;
169 
170  // Specifique aux provides port;
171  Ports::Port_var provides_port_ref;
172 
173  Ports::PortProperties_var port_prop;
174  };
175 
176  typedef std::map<std::string, port_t *> ports;
177 
178  /*-------------------------------------------------*/
179  /*-------------------------------------------------*/
180 
182  ports::iterator my_ports_it;
183 };
184 
185 #endif