Salome HOME
launchConfigureParser.py: Setup gui log file via environment variable.
[modules/kernel.git] / src / SALOMEDSImpl / SALOMEDSImpl_StudyBuilder.hxx
index e67102ef31c898a35b10944718b01a16cbbfe0ba..c017a9aa588220aa0a42bef9fd1a2c92674b04aa 100644 (file)
-// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
+//
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-// 
+//
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either 
-// version 2.1 of the License.
-// 
-// This library is distributed in the hope that it will be useful 
-// but WITHOUT ANY WARRANTY; without even the implied warranty of 
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 // Lesser General Public License for more details.
 //
-// You should have received a copy of the GNU Lesser General Public  
-// License along with this library; if not, write to the Free Software 
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 //  File   : SALOMEDSImpl_StudyBuilder.hxx
 //  Author : Sergey RUIN
 //  Module : SALOME
-
+//
 #ifndef __SALOMEDSImpl_STUDYBUILDER_H__
 #define __SALOMEDSImpl_STUDYBUILDER_H__
 
-//Handle definition
-#include <Handle_MMgt_TShared.hxx>
-#include <Standard_DefineHandle.hxx>
-DEFINE_STANDARD_HANDLE( SALOMEDSImpl_StudyBuilder, MMgt_TShared )
-
+#include "SALOMEDSImpl_Defines.hxx"
 // std C++ headers
 #include <iostream>
+#include <string>
+#include <vector>
 
-// Cascade header
-#include <TCollection_AsciiString.hxx>
-#include <TDocStd_Document.hxx>
 #include "SALOMEDSImpl_Callback.hxx"
 #include "SALOMEDSImpl_Driver.hxx"
 
-class SALOMEDSImpl_StudyBuilder : public MMgt_TShared 
+class SALOMEDSImpl_Study;
+
+class SALOMEDSIMPL_EXPORT SALOMEDSImpl_StudyBuilder
 {
 private:
-  Handle(TDocStd_Document)        _doc;
-  Handle(Standard_Transient)      _study;  
-  Handle(SALOMEDSImpl_Callback)   _callbackOnAdd;
-  Handle(SALOMEDSImpl_Callback)   _callbackOnRemove;
-  TCollection_AsciiString         _errorCode;
+  DF_Document*             _doc;
+  SALOMEDSImpl_Study*      _study;  
+  SALOMEDSImpl_Callback*   _callbackOnAdd;
+  SALOMEDSImpl_Callback*   _callbackOnRemove;
+  std::string              _errorCode;
 
 public:
-    
-  Standard_EXPORT SALOMEDSImpl_StudyBuilder(const Handle(Standard_Transient)& theOwner);
 
-  Standard_EXPORT ~SALOMEDSImpl_StudyBuilder();
+  SALOMEDSImpl_StudyBuilder(const SALOMEDSImpl_Study* theOwner);
 
-  Standard_EXPORT virtual Handle(SALOMEDSImpl_SComponent) NewComponent(const TCollection_AsciiString& ComponentDataType);
+  virtual ~SALOMEDSImpl_StudyBuilder();
 
-  Standard_EXPORT virtual bool DefineComponentInstance (const Handle(SALOMEDSImpl_SComponent)&, const TCollection_AsciiString& ComponentIOR);
-  
-  Standard_EXPORT virtual bool RemoveComponent(const Handle(SALOMEDSImpl_SComponent)& aComponent);
+  virtual SALOMEDSImpl_SComponent NewComponent(const std::string& ComponentDataType);
 
-  Standard_EXPORT virtual Handle(SALOMEDSImpl_SObject) NewObject(const Handle(SALOMEDSImpl_SObject)& theFatherObject);
+  virtual bool DefineComponentInstance (const SALOMEDSImpl_SComponent&, const std::string& ComponentIOR);
 
-  Standard_EXPORT virtual Handle(SALOMEDSImpl_SObject) NewObjectToTag(const Handle(SALOMEDSImpl_SObject)& theFatherObject, 
-                                                      const int theTag);
+  virtual bool RemoveComponent(const SALOMEDSImpl_SComponent& aComponent);
 
-  //! The methods adds a new subdirectory, the path can be absolute or relative (then the current context is used)
-  Standard_EXPORT virtual bool AddDirectory(const TCollection_AsciiString& thePath);
+  virtual SALOMEDSImpl_SObject NewObject(const SALOMEDSImpl_SObject& theFatherObject);
 
-  Standard_EXPORT virtual bool LoadWith(const Handle(SALOMEDSImpl_SComponent)& sco, SALOMEDSImpl_Driver* Engine);
-  Standard_EXPORT virtual bool Load(const Handle(SALOMEDSImpl_SObject)& sco);
+  virtual SALOMEDSImpl_SObject NewObjectToTag(const SALOMEDSImpl_SObject& theFatherObject, 
+    const int theTag);
 
-  Standard_EXPORT virtual bool RemoveObject(const Handle(SALOMEDSImpl_SObject)& anObject);
-  Standard_EXPORT virtual bool RemoveObjectWithChildren(const Handle(SALOMEDSImpl_SObject)& anObject);
+  virtual bool LoadWith(const SALOMEDSImpl_SComponent& sco, SALOMEDSImpl_Driver* Engine);
+  virtual bool Load(const SALOMEDSImpl_SObject& sco);
 
-  Standard_EXPORT virtual Handle(TDF_Attribute) FindOrCreateAttribute(const Handle(SALOMEDSImpl_SObject)& anObject, 
-                                                      const TCollection_AsciiString& aTypeOfAttribute);
-  Standard_EXPORT virtual bool FindAttribute(const Handle(SALOMEDSImpl_SObject)& anObject, 
-                             Handle(TDF_Attribute)& anAttribute, 
-                             const TCollection_AsciiString& aTypeOfAttribute);
+  virtual bool RemoveObject(const SALOMEDSImpl_SObject& anObject);
+  virtual bool RemoveObjectWithChildren(const SALOMEDSImpl_SObject& anObject);
 
-  Standard_EXPORT virtual bool RemoveAttribute(const Handle(SALOMEDSImpl_SObject)& anObject, const TCollection_AsciiString& aTypeOfAttribute);
+  virtual DF_Attribute* FindOrCreateAttribute(const SALOMEDSImpl_SObject& anObject, 
+                                              const std::string& aTypeOfAttribute);
+  virtual bool FindAttribute(const SALOMEDSImpl_SObject& anObject, 
+                             DF_Attribute*& anAttribute, 
+                             const std::string& aTypeOfAttribute);
 
-  Standard_EXPORT virtual bool Addreference(const Handle(SALOMEDSImpl_SObject)& me, 
-                            const Handle(SALOMEDSImpl_SObject)& thereferencedObject);
+  virtual bool RemoveAttribute(const SALOMEDSImpl_SObject& anObject, const std::string& aTypeOfAttribute);
 
-  Standard_EXPORT virtual bool RemoveReference(const Handle(SALOMEDSImpl_SObject)& me);
+  virtual bool Addreference(const SALOMEDSImpl_SObject& me, 
+                            const SALOMEDSImpl_SObject& thereferencedObject);
 
-  Standard_EXPORT virtual bool SetGUID(const Handle(SALOMEDSImpl_SObject)& anObject, const TCollection_AsciiString& theGUID);
-  Standard_EXPORT virtual bool IsGUID(const Handle(SALOMEDSImpl_SObject)& anObject, const TCollection_AsciiString& theGUID);
+  virtual bool RemoveReference(const SALOMEDSImpl_SObject& me);
 
-  Standard_EXPORT virtual void NewCommand();
-  Standard_EXPORT virtual void CommitCommand();
-  Standard_EXPORT virtual bool HasOpenCommand();
-  Standard_EXPORT virtual void AbortCommand();
-  Standard_EXPORT virtual void Undo();
-  Standard_EXPORT virtual void Redo();
-  Standard_EXPORT bool GetAvailableUndos();
-  Standard_EXPORT bool GetAvailableRedos();
-  Standard_EXPORT bool IsSaved();
-  Standard_EXPORT bool IsModified();
-  Standard_EXPORT virtual int UndoLimit();
-  Standard_EXPORT virtual void UndoLimit(const int);
+  virtual bool SetGUID(const SALOMEDSImpl_SObject& anObject, const std::string& theGUID);
+  virtual bool IsGUID(const SALOMEDSImpl_SObject& anObject, const std::string& theGUID);
 
-  Standard_EXPORT void CheckLocked();
+  virtual void NewCommand();
+  virtual void CommitCommand();
+  virtual bool HasOpenCommand();
+  virtual void AbortCommand();
+  virtual void Undo();
+  virtual void Redo();
+  bool GetAvailableUndos();
+  bool GetAvailableRedos();
+  bool IsSaved();
+  bool IsModified();
+  virtual int UndoLimit();
+  virtual void UndoLimit(const int);
 
-  Standard_EXPORT virtual Handle(SALOMEDSImpl_Callback) SetOnAddSObject(const Handle(SALOMEDSImpl_Callback)& theCallback);
-  Standard_EXPORT virtual Handle(SALOMEDSImpl_Callback) SetOnRemoveSObject(const Handle(SALOMEDSImpl_Callback)& theCallback);
+  void CheckLocked();
 
-  Standard_EXPORT virtual bool SetName(const Handle(SALOMEDSImpl_SObject)& theSO, const TCollection_AsciiString& theValue);
+  virtual SALOMEDSImpl_Callback* SetOnAddSObject(const SALOMEDSImpl_Callback* theCallback);
+  virtual SALOMEDSImpl_Callback* SetOnRemoveSObject(const SALOMEDSImpl_Callback* theCallback);
 
-  Standard_EXPORT virtual bool SetComment(const Handle(SALOMEDSImpl_SObject)& theSO, const TCollection_AsciiString& theValue);
+  virtual bool SetName(const SALOMEDSImpl_SObject& theSO, const std::string& theValue);
 
-  Standard_EXPORT virtual bool SetIOR(const Handle(SALOMEDSImpl_SObject)& theSO, const TCollection_AsciiString& theValue);
+  virtual bool SetComment(const SALOMEDSImpl_SObject& theSO, const std::string& theValue);
 
-  Standard_EXPORT virtual TCollection_AsciiString GetErrorCode() { return _errorCode; }
-  Standard_EXPORT virtual bool IsError() { return _errorCode != ""; }
+  virtual bool SetIOR(const SALOMEDSImpl_SObject& theSO, const std::string& theValue);
 
-  Standard_EXPORT virtual Handle(Standard_Transient) GetOwner() { return _study; }
+  virtual std::string GetErrorCode() { return _errorCode; }
+  virtual bool IsError() { return _errorCode != ""; }
 
-public:
-  DEFINE_STANDARD_RTTI( SALOMEDSImpl_StudyBuilder )
+  virtual SALOMEDSImpl_Study* GetOwner() { return _study; }
 };
 #endif