X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSALOMEDS%2FSALOMEDS_Study_i.hxx;h=52ada453c2b36b400a83fdb510c08abcde100572;hb=4a76ece6017b9d8c11e8fea446cca49f4d123272;hp=ad314b4972af87cf784c6f35a49bfaed7f4beb96;hpb=1f742af859d50d34c63f9dc02f9a705089bf060e;p=modules%2Fkernel.git diff --git a/src/SALOMEDS/SALOMEDS_Study_i.hxx b/src/SALOMEDS/SALOMEDS_Study_i.hxx index ad314b497..52ada453c 100644 --- a/src/SALOMEDS/SALOMEDS_Study_i.hxx +++ b/src/SALOMEDS/SALOMEDS_Study_i.hxx @@ -1,92 +1,61 @@ -// SALOME SALOMEDS : data structure of SALOME and sources of Salome data server +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 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 -// 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// 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 +// 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 : Yves FRICAUD +// Author : Sergey RUIN // Module : SALOME -// $Header$ - +// #ifndef __SALOMEDS_STUDY_I_H__ #define __SALOMEDS_STUDY_I_H__ // std C++ headers -#include +#include // IDL headers #include +#include CORBA_SERVER_HEADER(SALOME_GenericObj) #include CORBA_SERVER_HEADER(SALOMEDS) -// Cascade headers -#include -#include -#include -#include #include -#include -#include //SALOMEDS headers #include "SALOMEDS_SComponentIterator_i.hxx" -#include "SALOMEDS_ChildIterator_i.hxx" #include "SALOMEDS_StudyBuilder_i.hxx" #include "SALOMEDS_SObject_i.hxx" -#include "SALOMEDS_DataMapStringLabel.hxx" #include "SALOMEDS_UseCaseBuilder_i.hxx" -#include "SALOMEDS_Callback_i.hxx" +#include "SALOMEDSImpl_Study.hxx" +#include "SALOMEDSImpl_AttributeIOR.hxx" -class 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; - char* _name; - Handle(TDocStd_Document) _doc; // OCAF Document - CORBA::Boolean _isSaved; // True if the Study is saved - char* _URL; //URL of the persistent reference of the study - SALOMEDS::SObject_ptr _FindObject(SALOMEDS::SObject_ptr SO, - const char* anObjectName, - bool& _find); - SALOMEDS::SObject_ptr _FindObjectIOR(SALOMEDS::SObject_ptr SO, - const char* anObjectIOR, - bool& _find); - CORBA::Short _StudyId; - - SALOMEDS_DataMapStringLabel myIORLabels; - - // data structures for postponed destroying of CORBA object functionality - TColStd_SequenceOfAsciiString myPostponedIORs; // ordered set of IORs - TColStd_SequenceOfInteger myNbPostponed; // number of IOR in the each transaction - int myNbUndos; // number of current Undos, made by user - - TDF_Label _current; - bool _autoFill; + CORBA::ORB_var _orb; + SALOMEDSImpl_Study* _impl; + SALOMEDS_StudyBuilder_i* _builder; public: //! standard constructor - SALOMEDS_Study_i(const Handle(TDocStd_Document), - CORBA::ORB_ptr, - const char* study_name); + SALOMEDS_Study_i(SALOMEDSImpl_Study*, CORBA::ORB_ptr); //! standard destructor virtual ~SALOMEDS_Study_i(); @@ -256,6 +225,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 @@ -271,15 +243,15 @@ public: 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(SALOMEDS_IORAttribute) theAttribute, CORBA::ORB_ptr orb); + 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(); @@ -292,16 +264,74 @@ public: virtual void Close(); - void EnableUseCaseAutoFilling(CORBA::Boolean isEnabled) { _autoFill = 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 WIN32 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 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 CORBA::Double GetReal(const char* theVarName); + + virtual CORBA::Long GetInteger(const char* theVarName); + + virtual CORBA::Boolean GetBoolean(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 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); + + virtual SALOMEDSImpl_Study* GetImpl() { return _impl; } + + virtual CORBA::LongLong GetLocalImpl(const char* theHostname, CORBA::Long thePID, CORBA::Boolean& isLocal); }; #endif