1 // Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 // File : SALOME_Ports.idl
23 // Author : Andre RIBES, EDF
26 #ifndef _SALOME_PORTS_IDL_
27 #define _SALOME_PORTS_IDL_
30 This file contains the IDL declarations of the kind of ports provided by the
31 SALOME component model.
36 /*! \brief Interface of a DSC Port.
37 This interface defines a Port.
38 A port is a CORBA interface.
42 /*! \brief Interface of a Control_Port.
43 This interface defines a Control Port. When a component uses a control port,
44 it says that the service associated to the provides port can be started.
46 \note Currently Control_Port can not employed since it is not recognized
47 by the supervisor. But this type can be used to classified the port.
49 interface Control_Port : Ports::Port {};
51 /*! \brief Interface a Data_Port.
52 This interface defines a Data Port.
53 A Data Port is a port that transmit data between two components.
55 Each Data Port has a Put operation for the emitter and a Get operation
58 \note Data_Port is currently empty but it permits to identified
59 the behaviour of a port.
61 interface Data_Port : Ports::Port {};
63 /*! \brief Data_And_Control_Port.
64 This interface defines a combination of a Control_Port and a Data_Port.
66 \note Like Control_Port, Data_And_Control_Port can not employed since it is
67 not recognized by the supervisor. But this type can be used to classified the port.
69 interface Data_And_Control_Port : Ports::Port {};
72 This exception indicates that the property doesn't not exist.
74 exception NotDefined {};
77 This exception indicates that the given value to the property is not
83 This exception indicates that the given value to the property is not
86 exception BadValue {};
88 /*! \brief Interface of a PortProperties.
89 This interface permits to set and get properties
90 associated to a port. Each uses or provides port have a
91 PortProperties object. But this object could be empty.
93 interface PortProperties {
96 This operation permits to set a value of a property.
98 \param name property's name.
99 \param value value of the property.
101 \exception Ports::BadType
102 \exception Ports::NotDefined
104 void set_property(in string name, in any value) raises (Ports::BadType,
109 This operation permits to get property's value.
111 \param name property's name.
112 \return value of the property.
114 \exception Ports::NotDefined
116 any get_property(in string name) raises (Ports::NotDefined);
119 /*! \brief Interface of a basic datastream short port
120 This interface defines a Data_Port that transmit a CORBA::Short.
121 This interface can be seen as an example of an integration of
122 a port in the DSC_User programming model.
124 interface Data_Short_Port : Ports::Data_Port {
125 void put(in short data);