X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FSALOMEDS%2FSALOMEDS_Study_i.hxx;h=20b3bd6d2cb1f6f46dca2daf53f32fd961bfccf0;hb=acde82d9a3d34c28032d80123aa654197f7c26a4;hp=3cb4954236a0afe2aa2f1b54b10daa804fad5837;hpb=1bd1d38e86c39b13e265f8ff534fc1463c25fef3;p=modules%2Fkernel.git diff --git a/src/SALOMEDS/SALOMEDS_Study_i.hxx b/src/SALOMEDS/SALOMEDS_Study_i.hxx index 3cb495423..20b3bd6d2 100644 --- a/src/SALOMEDS/SALOMEDS_Study_i.hxx +++ b/src/SALOMEDS/SALOMEDS_Study_i.hxx @@ -1,7 +1,29 @@ +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, 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, 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 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// + // File : SALOMEDS_Study_i.hxx // Author : Sergey RUIN // Module : SALOME - +// #ifndef __SALOMEDS_STUDY_I_H__ #define __SALOMEDS_STUDY_I_H__ @@ -20,26 +42,64 @@ #include "SALOMEDS_StudyBuilder_i.hxx" #include "SALOMEDS_SObject_i.hxx" #include "SALOMEDS_UseCaseBuilder_i.hxx" +#include "SALOMEDS_Driver_i.hxx" #include "SALOMEDSImpl_Study.hxx" #include "SALOMEDSImpl_AttributeIOR.hxx" -class Standard_EXPORT SALOMEDS_Study_i: public POA_SALOMEDS::Study, - public PortableServer::RefCountServantBase +class Standard_EXPORT SALOMEDS_Study_i: public POA_SALOMEDS::Study { private: - CORBA::ORB_ptr _orb; - Handle(SALOMEDSImpl_Study) _impl; + CORBA::ORB_var _orb; + SALOMEDSImpl_Study* _impl; SALOMEDS_StudyBuilder_i* _builder; + SALOMEDSImpl_AbstractCallback* _notifier; + SALOMEDSImpl_AbstractCallback* _genObjRegister; + SALOMEDS_DriverFactory_i* _factory; + bool _closed; public: //! standard constructor - SALOMEDS_Study_i(const Handle(SALOMEDSImpl_Study), CORBA::ORB_ptr); + SALOMEDS_Study_i(CORBA::ORB_ptr); //! standard destructor - virtual ~SALOMEDS_Study_i(); + virtual ~SALOMEDS_Study_i(); + virtual void Init(); + virtual void Clear(); + + //! method to Open a Study + /*! + \param char* arguments, the study URL + \return Study_ptr arguments + */ + virtual bool Open(const char* aStudyUrl) throw (SALOME::SALOME_Exception); + + //! method to save a Study + virtual CORBA::Boolean Save(CORBA::Boolean theMultiFile); + virtual CORBA::Boolean SaveASCII(CORBA::Boolean theMultiFile); + + //! method to save a Study to the persistent reference aUrl + /*! + \param char* arguments, the new URL of the study + */ + virtual CORBA::Boolean SaveAs(const char* aUrl, CORBA::Boolean theMultiFile); + virtual CORBA::Boolean SaveAsASCII(const char* aUrl, CORBA::Boolean theMultiFile); + + //! method to copy the object + /*! + \param theObject object to copy + */ + virtual CORBA::Boolean Copy(SALOMEDS::SObject_ptr theObject); + virtual CORBA::Boolean CanCopy(SALOMEDS::SObject_ptr theObject); + //! method to paste the object in study + /*! + \param theObject object to paste + */ + virtual SALOMEDS::SObject_ptr Paste(SALOMEDS::SObject_ptr theObject) throw(SALOMEDS::StudyBuilder::LockProtection); + virtual CORBA::Boolean CanPaste(SALOMEDS::SObject_ptr theObject); + //! method to Get persistent reference of study (idem URL()) /*! \sa URL() @@ -181,12 +241,6 @@ public: */ virtual char* Name(); - //! method to set study name - /*! - \param name char* arguments, the study name - */ - virtual void Name(const char* name); - //! method to get if study has been saved /*! \return bool arguments @@ -205,6 +259,9 @@ public: */ virtual CORBA::Boolean IsModified(); + //! method to set Modified flag of a Study to True + virtual void Modified(); + //! method to get URL of the study (idem GetPersistentReference) /*! \return char* arguments, the study URL @@ -217,18 +274,15 @@ public: */ virtual void URL(const char* url); - virtual CORBA::Short StudyId(); - virtual void StudyId(CORBA::Short id); - - static SALOMEDS::Study_ptr GetStudy(const TDF_Label theLabel, CORBA::ORB_ptr orb); + static SALOMEDS::Study_ptr GetStudy(const DF_Label& theLabel, CORBA::ORB_ptr orb); - static void IORUpdated(const Handle(SALOMEDSImpl_AttributeIOR) theAttribute); + static void IORUpdated(SALOMEDSImpl_AttributeIOR* theAttribute); virtual void UpdateIORLabelMap(const char* anIOR, const char* aLabel); virtual SALOMEDS::Study::ListOfSObject* FindDependances(SALOMEDS::SObject_ptr anObject); - virtual SALOMEDS::AttributeStudyProperties_ptr SALOMEDS_Study_i::GetProperties(); + virtual SALOMEDS::AttributeStudyProperties_ptr GetProperties(); virtual char* GetLastModificationDate(); @@ -239,31 +293,87 @@ public: virtual SALOMEDS::UseCaseBuilder_ptr GetUseCaseBuilder(); - virtual void Close(); - - void EnableUseCaseAutoFilling(CORBA::Boolean isEnabled) { _impl->EnableUseCaseAutoFilling(isEnabled); } + void EnableUseCaseAutoFilling(CORBA::Boolean isEnabled); // postponed destroying of CORBA object functionality virtual void AddPostponed(const char* theIOR); virtual void AddCreatedPostponed(const char* theIOR); -#ifndef WNT - virtual void RemovePostponed(const CORBA::Long theUndoLimit); // removes postponed IORs of old transaction - // if theUndoLimit==0, removes all - virtual void UndoPostponed(const CORBA::Long theWay); // theWay = 1: resurrect objects, - // theWay = -1: get back to the list of postponed -#else virtual void RemovePostponed(CORBA::Long theUndoLimit); // removes postponed IORs of old transaction // if theUndoLimit==0, removes all virtual void UndoPostponed(CORBA::Long theWay); // theWay = 1: resurrect objects, // theWay = -1: get back to the list of postponed -#endif - virtual CORBA::Boolean DumpStudy(const char* thePath, const char* theBaseName, CORBA::Boolean isPublished); + virtual SALOMEDS::AttributeParameter_ptr GetCommonParameters(const char* theID, CORBA::Long theSavePoint); + virtual SALOMEDS::AttributeParameter_ptr GetModuleParameters(const char* theID, + const char* theModuleName, + CORBA::Long theSavePoint); + + virtual void SetStudyLock(const char* theLockerID); + + virtual bool IsStudyLocked(); + + virtual void UnLockStudy(const char* theLockerID); + + virtual SALOMEDS::ListOfStrings* GetLockerID(); + + virtual void SetReal(const char* theVarName, CORBA::Double theValue); + + virtual void SetInteger(const char* theVarName, CORBA::Long theValue); + + virtual void SetBoolean(const char* theVarName, CORBA::Boolean theValue); + + virtual void SetString(const char* theVarName, const char* theValue); + + virtual void SetStringAsDouble(const char* theVarName, CORBA::Double theValue); + + virtual CORBA::Double GetReal(const char* theVarName); + + virtual CORBA::Long GetInteger(const char* theVarName); + + virtual CORBA::Boolean GetBoolean(const char* theVarName); + + virtual char* GetString(const char* theVarName); + + virtual CORBA::Boolean IsReal(const char* theVarName); + + virtual CORBA::Boolean IsInteger(const char* theVarName); + + virtual CORBA::Boolean IsBoolean(const char* theVarName); + + virtual CORBA::Boolean IsString(const char* theVarName); + + virtual CORBA::Boolean IsVariable(const char* theVarName); + + virtual SALOMEDS::ListOfStrings* GetVariableNames(); + + virtual CORBA::Boolean RemoveVariable(const char* theVarName); + + virtual CORBA::Boolean RenameVariable(const char* theVarName, const char* theNewVarName); + + virtual CORBA::Boolean IsVariableUsed(const char* theVarName); + + virtual SALOMEDS::ListOfListOfStrings* ParseVariables(const char* theVars); + + virtual char* GetDefaultScript(const char* theModuleName, const char* theShift); + + virtual CORBA::Boolean DumpStudy(const char* thePath, + const char* theBaseName, + CORBA::Boolean isPublished, + CORBA::Boolean isMultiFile); + + virtual SALOMEDSImpl_Study* GetImpl() { return _impl; } + + virtual CORBA::LongLong GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal); + + void ping(){}; + CORBA::Long getPID(); + void ShutdownWithExit(); - virtual Handle(SALOMEDSImpl_Study) GetImpl() { return _impl; } + void Shutdown(); - virtual long GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal); + virtual void attach(SALOMEDS::Observer_ptr theObs, CORBA::Boolean modify); + virtual void detach(SALOMEDS::Observer_ptr theObs); }; #endif