Version: 9.15.0
SALOMEDS_Study_i.hxx
Go to the documentation of this file.
1 // Copyright (C) 2007-2025 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
42 #include "SALOMEDS_SObject_i.hxx"
44 #include "SALOMEDS_Driver_i.hxx"
45 
46 #include "SALOMEDSImpl_Study.hxx"
48 
50 
51 namespace 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 
60 class Standard_EXPORT SALOMEDS_Study_i: public POA_SALOMEDS::Study
61 {
62 private:
63 
64  void NameChanged(SALOME::Session_ptr session);
65  CORBA::ORB_var _orb;
71  bool _closed;
74 
75 public:
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
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
virtual char * ConvertObjectToIOR(CORBA::Object_ptr theObject)
Definition: SALOMEDS_Study_i.hxx:284
SALOMEDS_DriverFactory_i * _factory
Definition: SALOMEDS_Study_i.hxx:70
CORBA::ORB_var _orb
Definition: SALOMEDS_Study_i.hxx:65
virtual SALOMEDSImpl_Study * GetImpl()
Definition: SALOMEDS_Study_i.hxx:361
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