2 \page KERNEL_Services KERNEL Services for end user (Python interface)
4 In a %SALOME application, distributed components, servers and clients use
5 the CORBA middleware for comunication. CORBA interfaces are defined via idl
6 files. All the different CORBA interfaces are available for users in Python,
7 see CORBA interfaces below.
9 For some general purpose services, CORBA interfaces have been encapsulated
10 in order to provide a simple interface (encapsulation is generally done in
11 C++ classes, and a Python SWIG interface is also generated from C++, to
12 ensure a consistent behavior between C++ modules and Python modules or user
15 \section S1_kernel_ser General purpose services
17 \subsection subsection11 SALOME services access from a Python shell
19 See \ref SALOME_Application for detailed instructions on how to launch a Python
20 interpreter with full access to the %SALOME environment and services.
22 You can use the embedded Python interpreter in Graphical User Interface, or an
23 external interpreter, with:
30 In either cases, %SALOME services access is done with:
37 In the embedded interpreter, it is already done, but there is no problem to
38 do it several times, so it is preferable to add these instructions
39 systematically in your scripts, to allow them to work in all configurations.
40 See \ref kernel_salome for a short description of most useful variables and
43 \subsection subsection12 Container and component instanciation
45 See SALOME_LifeCycleCORBA for the C++ interface (Python interface obtained with SWIG
48 In the following example, a test component provided in KERNEL is launched
49 in the local container, "FactoryServer", created when %SALOME starts:
56 lcc = LifeCycleCORBA.LifeCycleCORBA()
57 obj=lcc.FindOrLoad_Component("FactoryServer","SalomeTestComponent")
60 comp=obj._narrow(Engines.TestComponent)
65 The answer is something like:
68 'TestComponent_i : L = 1'
71 The _narrow() instruction is not always mandatory in Python, but sometimes
72 useful to be sure you have got the right type of %object. Here, Testcomponent
73 interface is defined in CORBA module Engines. With this example, it works also
74 without the _narrow() instruction:
80 In the next example, a component instance is created in a specific Container
81 defined by it's computer hostname and it's name. Here we use the local
82 computer. Note that in Utils_Identity, Utils_Identity::getShortHostName() gives the short
83 hostname of the computer, without domain suffixes, which is used in %SALOME.
84 The container process is created here if it does not exists, and a new
85 component instance is created:
91 lcc = LifeCycleCORBA.LifeCycleCORBA()
94 host = Utils_Identity.getShortHostName()
98 params['hostname']=host
99 params['container_name']='myContainer'
100 comp=lcc.LoadComponent(params,'SalomeTestComponent')
104 If you want to get a list of containers and component instances, client %object
105 from orbmodule provides a list:
109 clt=orbmodule.client()
117 ContainerManager.object
120 FactoryServerPy.object
121 SuperVisionContainer.object
124 SalomeTestComponent_inst_1.object
127 SalomeTestComponent_inst_1.object
128 SalomeTestComponent_inst_2.object
138 SalomeAppEngine.object
141 \subsection subsection13 File transfer service
143 See SALOME_FileTransferCORBA for the C++ interface (Python interface obtained with
144 SWIG is very similar).
146 The following example shows how to tranfer a file from a remote host to the
147 client computer. Remote hostname is 'cli76cc', we would like to copy
148 'tkcvs_8_0_3.tar.gz' from remote to local computer. %A full pathname is
149 required. %A container is created on remote computer if it does not exist,
150 to handle the file transfer:
156 import LifeCycleCORBA
157 remotefile="/home/prascle/tkcvs_8_0_3.tar.gz"
158 aFileTransfer=LifeCycleCORBA.SALOME_FileTransferCORBA('cli76cc',remotefile)
159 localFile=aFileTransfer.getLocalFile()
162 \subsection subsection14 CORBA Naming service access
164 See SALOME_NamingService for the C++ interface. The Python interface
165 SALOME_NamingServicePy::SALOME_NamingServicePy_i is not yet derived from the C++ interface and offers
166 only the most useful functions.
168 \section S2_kernel_ser All IDL Interfaces
170 -# <b>Containers and component life cycle, File transfer service</b>
171 - Engines : engines CORBA module.
172 - Engines::EngineComponent : generic component interface. All %SALOME components inherit this interface.
173 - Engines::Container : host for C++ and Python components components instances
174 - Engines::fileTransfer : agent for file transfer created by a container copy a local file to a distent client
175 - Engines::fileRef : reference to a file, used by a container for file transfers
176 - Engines::ContainerManager : unique instance, in charge of container creation on remote computers
177 - Engines::MPIContainer : a parallel implementation for containers and components
180 -# <b>Study management</b>
181 - SALOMEDS : SALOMEDS CORBA module
182 - SALOMEDS.idl : \copybrief SALOMEDS.idl
183 - SALOMEDS_Attributes.idl : \copybrief SALOMEDS_Attributes.idl
185 -# <b>High speed transfer, object life cycle, exceptions, GUI interface...</b>
186 - SALOME : \copybrief SALOME
187 - SALOME_Comm.idl : \copybrief SALOME_Comm.idl
188 - SALOME_GenericObj.idl : \copybrief SALOME_GenericObj.idl
189 - SALOME_Exception.idl : \copybrief SALOME_Exception.idl
190 - SALOME_Session.idl : \copybrief SALOME_Session.idl
192 -# <b>Miscelleanous</b>
193 - SALOME_ModuleCatalog : \copybrief SALOME_ModuleCatalog
194 - SALOME_RessourcesCatalog : \copybrief SALOME_RessourcesCatalog
195 - Registry : \copybrief Registry
196 - SALOME_Logger : \copybrief SALOME_Logger
198 -# <b>Other idl for test purposes</b>
199 - NSTEST : for naming service test
200 - SALOME_TestComponent.idl : for EngineComponent test
201 - SALOME_TestModuleCatalog : for SALOME_ModuleCatalog test
202 - SALOME_TestMPIComponent.idl : \copybrief SALOME_TestMPIComponent.idl
203 - TestNotif.idl : \copybrief TestNotif.idl
205 -# <b>Some useful command scripts </b>
206 - waitNS.py : \copybrief waitNS.py
207 - waitContainers.py : \copybrief waitContainers.py
208 - showNS.py : \copybrief showNS.py
209 - shutdownSalome.py : \copybrief shutdownSalome.py
210 - killSalome.py : \copybrief killSalome.py
211 - killSalomeWithPort.py : \copybrief killSalomeWithPort.py
212 - appli_gen.py : \copybrief appli_gen.py
217 /** \example example1
218 AttributeReal interface (creations/saving/restoring)
220 Methods : FindOrCreateAttribute, Value, SaveAs, SetValue, FindComponent, FindAttribute, Open
222 /** \example example3
223 AttributeSequenceOfReal interface(creations/saving/restoring)\n
224 AttributeSequenceOfReal : ChangeValue, Add, Value, Remove, Length\n
225 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open
227 /** \example example16
228 Methods : GetAvailableUndos, ChangeValue, FindOrCreateAttribute, SaveAs, GetAvailableRedos, Undo, FindComponent, Redo, FindAttribute, Open, CommitCommand, NewCommand
230 /** \example example17
231 SALOMEDS methods : RemoveAttribute, FindOrCreateAttribute, NewStudy, GetAllAttributes, NewCommand, CommitCommand, AbortCommand, NewComponent
233 /** \example example18
234 AttributeTreeNode interface(creations/saving/restoring)\n
235 SALOMEDS methods : FindOrCreateAttribute, NewObject\n
236 Attribute methods : HasFirst, HasFather, SetPrevious, Next, InsertAfter, GetFather, HasNext, SetValue, Append, NewStudy, Label, IsRoot, Prepend, SetFather, Depth, HasPrevious
238 /** \example example19
239 SALOMEDS methods : FindOrCreateAttribute, Save, SaveAs, Close, Open, FindComponent, FindAttribute, FindObject, LoadWith
241 Attribute methods : Value, SetValue
243 /** \example example20
244 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, NewCommand, GetProperties, Open, CommitCommand, NewBuilder\n
245 Attribute methods : SetLocked, IsLocked, GetCreationMode, SetCreationDate, IsModified, GetUserName, Value, SetUserName, SetValue, GetCreationDate
247 /** \example example23
250 /** \example example8
251 AttributeDrawable interface(creations/saving/restoring)\n
252 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n
253 Attribute methods : SetDrawable, IsDrawable
255 /** \example example9
256 AttributeSelectable interface(creations/saving/restoring)\n
257 SALOMEDS methods: FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n
258 Attribute methods: SetSelectable, IsSelectable
260 /** \example example10
261 AttributeExpandable interface(creations/saving/restoring)\n
262 SALOMEDS methods : SaveAs FindComponent FindAttribute Open\n
263 Attribute methods : SetExpandable IsExpandable
265 /** \example example11
266 Test AttributeOpened (creations/saving/restoring)\n
267 SALOMEDS methods : FindOrCreateAttribute SaveAs, FindComponent, FindAttribute, Open\n
268 Attribute methods : SetOpened, IsOpened
270 /** \example example12
271 AttributeTextColor interface (creations/saving/restoring)\n
272 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n
273 Attribute methods : SetTextColor TextColor
275 /** \example example13
276 Test AttributeTextHighlightColor interface(creations/saving/restoring)\n
277 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n
278 Attribute methods : SetTextHighlightColor TextHighlightColor
280 /** \example example14
281 AttributePixMap interface (creations/saving/restoring)\n
282 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n
283 Attribute methods : SetPixMap, GetPixMap
286 /** \example example21
287 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n
288 Attribute methods: GetValue, GetNbColumns, AddColumn, SetRowTitles, PutValue, GetColumn, GetColumnTitles, GetTitle, SetRow, GetRowTitles, SetColumnTitles, SetColumn, GetRow, GetNbRows, SetColumnTitle, AddRow, SetTitle, SetRowTitle
290 /** \example example15
291 AttributeLocalID interface(creations/saving/restoring)\n
292 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n
293 Attribute methods : Value, SetValue
295 /** \example example22
296 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent, FindAttribute, Open\n
297 Attribute methods : GetValue, GetNbColumns, AddColumn, SetRowTitles, PutValue, GetColumn, GetColumnTitles, GetTitle, SetRow, GetRowTitles, SetColumnTitles, SetColumn, GetRow, GetNbRows, SetColumnTitle, AddRow, SetTitle, SetRowTitle
299 /** \example example4
300 AttributeSequenceOfInteger interface(creations/saving/restoring)\n
301 SALOMEDS methods : FindOrCreateAttribute FindComponent FindAttribute Open Add SaveAs
302 AttributeSequenceOfInteger methods : Value, Remove, Length
304 /** \example example5
305 AttributeName interface(creations/saving/restoring)\n
306 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent FindAttribute Open\n
307 Attribute methods : SetValue, Value
309 /** \example example6
310 AttributeComment interface(creations/saving/restoring)\n
311 SALOMEDS methods : FindOrCreateAttribute, SaveAs FindComponent FindAttribute Open\n
312 Attribute methods : Value, SetValue
314 /** \example example7
315 AttributePersistentRef interface(creations/saving/restoring)\n
316 SALOMEDS methods : FindOrCreateAttribute, SaveAs, FindComponent FindAttribute Open\n
317 Attribute methods : SetValue, Value