X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSALOMEDS%2FSALOMEDS_Study_i.hxx;h=52ada453c2b36b400a83fdb510c08abcde100572;hb=4a76ece6017b9d8c11e8fea446cca49f4d123272;hp=cbee5f615ce5b3cd128e83a046f2d269cd09db27;hpb=61d4fc88c862e718985aa6e9b1bf72f055553eee;p=modules%2Fkernel.git diff --git a/src/SALOMEDS/SALOMEDS_Study_i.hxx b/src/SALOMEDS/SALOMEDS_Study_i.hxx index cbee5f615..52ada453c 100644 --- a/src/SALOMEDS/SALOMEDS_Study_i.hxx +++ b/src/SALOMEDS/SALOMEDS_Study_i.hxx @@ -1,65 +1,61 @@ -// File : SALOMEDS_Study_i.hxx -// Created : Wed Nov 28 16:27:37 2001 -// Author : Yves FRICAUD - -// Project : SALOME -// Module : SALOMEDS -// Copyright : Open CASCADE 2001 -// $Header$ - +// Copyright (C) 2007-2008 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. +// +// 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__ // 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 //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; - 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(); @@ -122,6 +118,13 @@ public: */ virtual SALOMEDS::SObject_ptr FindObjectID(const char* anObjectID); + //! method to Create an Object with ID = anObjectID + /*! + \param anObjectID char* arguments + \return SObject_ptr arguments, the object found + */ + virtual SALOMEDS::SObject_ptr CreateObjectID(const char* anObjectID); + //! method to Find an Object with ID = anObjectIOR /*! \param anObjectIOR char* arguments @@ -222,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 @@ -234,17 +240,18 @@ public: */ virtual void URL(const char* url); - virtual CORBA::Short StudyId(); virtual void StudyId(CORBA::Short id); - static void IORUpdated(const Handle(SALOMEDS_IORAttribute) theAttribute, CORBA::ORB_ptr orb); + static SALOMEDS::Study_ptr GetStudy(const DF_Label& theLabel, 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(); @@ -257,6 +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