Version: 9.16.0
SALOMEDS_Study_i.hxx
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, 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 : SALOMEDS_Study_i.hxx
24// Author : Sergey RUIN
25// Module : SALOME
26//
27#pragma once
28
29// std C++ headers
30#include <iostream>
31
32// IDL headers
33#include <SALOMEconfig.h>
34#include CORBA_SERVER_HEADER(SALOME_GenericObj)
35#include CORBA_SERVER_HEADER(SALOMEDS)
36#include CORBA_CLIENT_HEADER(SALOME_Session)
37#include <stdio.h>
38
39//SALOMEDS headers
44#include "SALOMEDS_Driver_i.hxx"
45
48
50
51namespace KERNEL
52{
53 Standard_EXPORT SALOMEDS::Study_ptr getStudyServantSA();
54 Standard_EXPORT SALOMEDS::Study_var retrieveNewStudyServantSA();
56 Standard_EXPORT void setStudyServantSA(SALOMEDS::Study_var study);
57 Standard_EXPORT void setStudyServantSA(SALOMEDS::Study_var study, PortableServer::POA_var poa);
58}
59
60class Standard_EXPORT SALOMEDS_Study_i: public POA_SALOMEDS::Study
61{
62private:
63
64 void NameChanged(SALOME::Session_ptr session);
65 CORBA::ORB_var _orb;
71 bool _closed;
74
75public:
77 SALOMEDS_Study_i(CORBA::ORB_ptr, SALOME_NamingService_Abstract * = nullptr);
79 SALOMEDS_Study_i(CORBA::ORB_ptr, SALOME::Session_ptr session);
80
82
83 virtual ~SALOMEDS_Study_i();
84
85 virtual PortableServer::POA_ptr _default_POA();
86
87 virtual void Init() override;
88 virtual void Init(SALOME::Session_ptr session);
89 virtual void Clear();
90
92
96 virtual bool Open(const wchar_t* aStudyUrl);
97
99
103 virtual bool CanOpen(const wchar_t* aStudyUrl);
104
106 virtual CORBA::Boolean Save(CORBA::Boolean theMultiFile, CORBA::Boolean theASCII);
107
109
112 virtual CORBA::Boolean SaveAs(const wchar_t* aUrl, CORBA::Boolean theMultiFile, CORBA::Boolean theASCII);
113
115
118 virtual CORBA::Boolean Copy(SALOMEDS::SObject_ptr theObject);
119 virtual CORBA::Boolean CanCopy(SALOMEDS::SObject_ptr theObject);
121
124 virtual SALOMEDS::SObject_ptr Paste(SALOMEDS::SObject_ptr theObject);
125 virtual CORBA::Boolean CanPaste(SALOMEDS::SObject_ptr theObject);
126
128
132 virtual char* GetPersistentReference();
133
135
138 virtual CORBA::Boolean IsEmpty();
139
141
145 virtual SALOMEDS::SComponent_ptr FindComponent (const char* aComponentName);
146
148
152 virtual SALOMEDS::SComponent_ptr FindComponentID(const char* aComponentID);
153
155
159 virtual SALOMEDS::SObject_ptr FindObject(const char* anObjectName);
160
161
163
169 virtual SALOMEDS::Study::ListOfSObject* FindObjectByName( const char* anObjectName, const char* aComponentName );
170
172
176 virtual SALOMEDS::SObject_ptr FindObjectID(const char* anObjectID);
177
179
183 virtual SALOMEDS::SObject_ptr CreateObjectID(const char* anObjectID);
184
186
190 virtual SALOMEDS::SObject_ptr FindObjectIOR(const char* anObjectIOR);
191
193
197 virtual SALOMEDS::SObject_ptr FindObjectByPath(const char* thePath);
198
200
204 virtual char* GetObjectPath(CORBA::Object_ptr theObject);
205
207
211 virtual SALOMEDS::ChildIterator_ptr NewChildIterator(SALOMEDS::SObject_ptr aSO);
212
214
217 virtual SALOMEDS::SComponentIterator_ptr NewComponentIterator();
218
219 SALOMEDS_SComponentIterator_i *NewComponentIteratorImpl();
220
222
225 virtual SALOMEDS::StudyBuilder_ptr NewBuilder();
226
228
231 virtual wchar_t* Name();
232
234
237 virtual void Name(const wchar_t* name);
238
240
243 virtual CORBA::Boolean IsSaved();
244
246
249 virtual void IsSaved(CORBA::Boolean save);
250
252
255 virtual CORBA::Boolean IsModified();
256
258 virtual void Modified();
259
261
264 virtual wchar_t* URL();
265
267
270 virtual void URL(const wchar_t* url);
271
272 static void IORUpdated(SALOMEDSImpl_AttributeIOR* theAttribute);
273
274 virtual void UpdateIORLabelMap(const char* anIOR, const char* aLabel);
275
276 virtual SALOMEDS::Study::ListOfSObject* FindDependances(SALOMEDS::SObject_ptr anObject);
277
278 virtual SALOMEDS::AttributeStudyProperties_ptr GetProperties();
279
280 virtual char* GetLastModificationDate();
281
282 virtual SALOMEDS::ListOfDates* GetModificationsDate();
283
284 virtual char* ConvertObjectToIOR(CORBA::Object_ptr theObject) {return _orb->object_to_string(theObject); }
285 virtual CORBA::Object_ptr ConvertIORToObject(const char* theIOR) { return _orb->string_to_object(theIOR); };
286
287 virtual SALOMEDS::UseCaseBuilder_ptr GetUseCaseBuilder();
288
289 void EnableUseCaseAutoFilling(CORBA::Boolean isEnabled);
290
291 // postponed destroying of CORBA object functionality
292 virtual void AddPostponed(const char* theIOR);
293
294 virtual void AddCreatedPostponed(const char* theIOR);
295
296 virtual void RemovePostponed(CORBA::Long theUndoLimit); // removes postponed IORs of old transaction
297 // if theUndoLimit==0, removes all
298 virtual void UndoPostponed(CORBA::Long theWay); // theWay = 1: resurrect objects,
299 // theWay = -1: get back to the list of postponed
300
301 virtual SALOMEDS::AttributeParameter_ptr GetCommonParameters(const char* theID, CORBA::Long theSavePoint);
302 virtual SALOMEDS::AttributeParameter_ptr GetModuleParameters(const char* theID,
303 const char* theModuleName,
304 CORBA::Long theSavePoint);
305
306 virtual void SetStudyLock(const char* theLockerID);
307
308 virtual bool IsStudyLocked();
309
310 virtual void UnLockStudy(const char* theLockerID);
311
312 virtual SALOMEDS::ListOfStrings* GetLockerID();
313
314 virtual void SetReal(const char* theVarName, CORBA::Double theValue);
315
316 virtual void SetInteger(const char* theVarName, CORBA::Long theValue);
317
318 virtual void SetBoolean(const char* theVarName, CORBA::Boolean theValue);
319
320 virtual void SetString(const char* theVarName, const char* theValue);
321
322 virtual void SetStringAsDouble(const char* theVarName, CORBA::Double theValue);
323
324 virtual CORBA::Double GetReal(const char* theVarName);
325
326 virtual CORBA::Long GetInteger(const char* theVarName);
327
328 virtual CORBA::Boolean GetBoolean(const char* theVarName);
329
330 virtual char* GetString(const char* theVarName);
331
332 virtual CORBA::Boolean IsReal(const char* theVarName);
333
334 virtual CORBA::Boolean IsInteger(const char* theVarName);
335
336 virtual CORBA::Boolean IsBoolean(const char* theVarName);
337
338 virtual CORBA::Boolean IsString(const char* theVarName);
339
340 virtual CORBA::Boolean IsVariable(const char* theVarName);
341
342 virtual SALOMEDS::ListOfStrings* GetVariableNames();
343
344 virtual CORBA::Boolean RemoveVariable(const char* theVarName);
345
346 virtual CORBA::Boolean RenameVariable(const char* theVarName, const char* theNewVarName);
347
348 virtual CORBA::Boolean IsVariableUsed(const char* theVarName);
349
350 virtual SALOMEDS::ListOfListOfStrings* ParseVariables(const char* theVars);
351
352 virtual char* GetDefaultScript(const char* theModuleName, const char* theShift);
353
354 virtual CORBA::Boolean DumpStudy(const char* thePath,
355 const char* theBaseName,
356 CORBA::Boolean isPublished,
357 CORBA::Boolean isMultiFile);
358
359 virtual char* GetDumpPath();
360
361 virtual SALOMEDSImpl_Study* GetImpl() { return _impl; }
362
363 virtual CORBA::LongLong GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal);
364
365 static void SetThePOA(PortableServer::POA_ptr);
366 static PortableServer::POA_ptr GetThePOA();
367
368 void ping(){};
369 CORBA::Long getPID();
370 void ShutdownWithExit();
371
372 void Shutdown();
373
374 virtual void attach(SALOMEDS::Observer_ptr theObs, CORBA::Boolean modify);
375 virtual void detach(SALOMEDS::Observer_ptr theObs);
376};
#define Standard_EXPORT
Definition: DF_definitions.hxx:53
static void DumpStudy()
Function : Purpose :
Definition: SALOMEDS_Client.cxx:72
Definition: SALOMEDSImpl_Callback.hxx:59
Definition: SALOMEDSImpl_AttributeIOR.hxx:39
Definition: SALOMEDSImpl_Study.hxx:59
Definition: SALOMEDS_Driver_i.hxx:111
Definition: SALOMEDS_SComponentIterator_i.hxx:45
Definition: SALOMEDS_StudyBuilder_i.hxx:41
Definition: SALOMEDS_Study_i.hxx:61
SALOMEDSImpl_Study * _impl
Definition: SALOMEDS_Study_i.hxx:66
bool _closed
Definition: SALOMEDS_Study_i.hxx:71
virtual CORBA::Object_ptr ConvertIORToObject(const char *theIOR)
Definition: SALOMEDS_Study_i.hxx:285
virtual char * ConvertObjectToIOR(CORBA::Object_ptr theObject)
Definition: SALOMEDS_Study_i.hxx:284
virtual SALOMEDSImpl_Study * GetImpl()
Definition: SALOMEDS_Study_i.hxx:361
SALOMEDS_StudyBuilder_i * _builder
Definition: SALOMEDS_Study_i.hxx:67
void ping()
Definition: SALOMEDS_Study_i.hxx:368
SALOMEDSImpl_AbstractCallback * _notifier
Definition: SALOMEDS_Study_i.hxx:68
SALOMEDSImpl_AbstractCallback * _genObjRegister
Definition: SALOMEDS_Study_i.hxx:69
SALOMEDS_DriverFactory_i * _factory
Definition: SALOMEDS_Study_i.hxx:70
CORBA::ORB_var _orb
Definition: SALOMEDS_Study_i.hxx:65
Definition: SALOME_NamingService_Abstract.hxx:46
sequence< SObject > ListOfSObject
Indicate the file where the study has been saved.
Definition: SALOMEDS.idl:413
def Init()
Definition: salome_ComponentGUI.py:84
Methods to be used in SSL mode to skip NS.
Definition: SALOME_Container_i.hxx:335
Standard_EXPORT SALOMEDS::Study_var retrieveNewStudyServantSA()
Definition: SALOMEDS_Study_i.cxx:86
Standard_EXPORT void killStudyServantSA()
Definition: SALOMEDS_Study_i.cxx:100
Standard_EXPORT void setStudyServantSA(SALOMEDS::Study_var study)
Definition: SALOMEDS_Study_i.cxx:127
Standard_EXPORT SALOMEDS::Study_ptr getStudyServantSA()
Return a unique study obj but servant is embeded here.
Definition: SALOMEDS_Study_i.cxx:77
sequence< string > ListOfDates
List of modification dates of a study.
Definition: SALOMEDS.idl:61
sequence< ListOfStrings > ListOfListOfStrings
An unbounded sequence of sequence of strings.
Definition: SALOMEDS.idl:65
sequence< string > ListOfStrings
An unbounded sequence of strings.
Definition: SALOMEDS.idl:63
poa
Definition: SALOME_ContainerPy.py:377
string name
Definition: pythfilter.py:56
session
Definition: runSalomeOld.py:288