Salome HOME
Merge branch 'eap/23514'
[modules/kernel.git] / idl / SALOMEDS.idl
index 9bf7b9ccfea6a843b909c438eae420f4582b38c3..8e8f4f218952fc666f754901263fdb2cf1b539ed 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// 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
@@ -139,7 +139,7 @@ during each working session.
     exception StudyObjectAlreadyExists {};
 //! Invalid name of the %study exception
     exception StudyNameError {};
-//! Invalid study comment 
+//! Invalid study comment
     exception StudyCommentError {};
 
 /*! \brief The name of the %Study
@@ -227,7 +227,7 @@ during each working session.
 */
     void SetContext(in string thePath) raises (StudyInvalidReference, StudyInvalidContext);
 /*!  \brief Get the context of the %Study.
-    
+
 <em>See \ref example23 for an example of this method usage in batchmode of %SALOME application.</em>
 */
     string GetContext() raises (StudyInvalidReference, StudyInvalidContext);
@@ -392,7 +392,7 @@ during each working session.
     long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
 
 
-/*! \brief  Mark this Study as being locked by the given locker. 
+/*! \brief  Mark this Study as being locked by the given locker.
 
     The lock status can be checked by method IsStudyLocked
     \param theLockerID identifies a locker of the study can be for ex. IOR of the engine that locks the study.
@@ -401,22 +401,22 @@ during each working session.
 
 /*! \brief Indicate if the Study is locked
 
-   Returns True if the Study was marked locked. 
+   Returns True if the Study was marked locked.
 */
     boolean IsStudyLocked() raises(StudyInvalidReference);
 
-/*! \brief  Mark this Study as being unlocked by the given locker. 
+/*! \brief  Mark this Study as being unlocked by the given locker.
 
      The lock status can be checked by method IsStudyLocked
     \param theLockerID identifies a locker of the study can be for ex. IOR of the engine that unlocks the study.
 */
     void UnLockStudy(in string theLockerID) raises(StudyInvalidReference);
 
-/*! \brief  Get the list of IDs of the Study's lockers. 
+/*! \brief  Get the list of IDs of the Study's lockers.
 */
     ListOfStrings GetLockerID() raises(StudyInvalidReference);
 
-/*! \brief  Create real variable with Name theVarName and value theValue 
+/*! \brief  Create real variable with Name theVarName and value theValue
 
     (or set if variable value into theValue already exists)
     \param theVarName is a name of the variable
@@ -424,14 +424,14 @@ during each working session.
 */
     void SetReal( in string theVarName, in double theValue ) raises(StudyInvalidReference);
 
-/*! \brief  Create integer variable with Name theVarName and value theValue 
+/*! \brief  Create integer variable with Name theVarName and value theValue
 
     (or set if variable value into theValue already exists)
     \param theVarName is a name of the variable
     \param theVarName is a value of the variable.
 */
     void SetInteger( in string theVarName, in long theValue ) raises(StudyInvalidReference);
-/*! \brief  Create boolean variable with Name theVarName and value theValue 
+/*! \brief  Create boolean variable with Name theVarName and value theValue
 
     (or set if variable value into theValue already exists)
     \param theVarName is a name of the variable
@@ -439,7 +439,7 @@ during each working session.
 */
     void SetBoolean( in string theVarName, in boolean theValue ) raises(StudyInvalidReference);
 
-/*! \brief  Create string variable with Name theVarName and value theValue 
+/*! \brief  Create string variable with Name theVarName and value theValue
 
     (or set if variable value into theValue already exists)
     \param theVarName is a name of the variable
@@ -474,7 +474,7 @@ during each working session.
     \param theVarName is a name of the variable.
 */
     string GetString( in string theVarName ) raises(StudyInvalidReference);
-    
+
 
 /*! \brief Indicate if a variable is real
 
@@ -546,7 +546,7 @@ during each working session.
 
 /*! \brief Parse variables used for object creation
 
-   \param string with variables, separated by special symbol. 
+   \param string with variables, separated by special symbol.
    \return Variables list.
 */
     ListOfListOfStrings ParseVariables( in string theVars ) raises(StudyInvalidReference);
@@ -558,78 +558,15 @@ during each working session.
     \param modify when \c true, observer receives any object's modification events;
            otherwise observer receives object's creation events only
 */
-     void attach(in SALOMEDS::Observer theObserver, in boolean modify);   
+     void attach(in SALOMEDS::Observer theObserver, in boolean modify);
 /*!
      Detach an observer from the Study
 
     \param theObserver observer to be detached
 */
-     void detach(in SALOMEDS::Observer theObserver);   
+     void detach(in SALOMEDS::Observer theObserver);
   };
 
-  //===========================================================================
- /*! \brief %SimanStudy Interface
-
-    The Siman (simulation management) study is an interface extension to the %Study
-    with functions for working with SIMAN server. Is allows to get data from SIMAN (check-out operation)
-    and to store it back (check-in operation).
-    This interface is correctly working if SALOME is compiled with SimanIO library, launched with siman
-    option and  connection to SIMAN server is established and alive. Only one study per application,
-    checked out from the SIMAN is SimanStudy. For other studies all functionality is unaccessible.
-*/
-
-  interface SimanStudy
-  {
-
-//! No connection with SIMAN server
-    exception SimanStudyNoConnection {};
-//! There is no SimanStudy with: study with checked out data.
-    exception SimanStudyNotExists {};
-
-/*! \brief The ID of the study in SIMAN server
-
-   This is equivalent to the methods setStudyId() & getStudyId()
-*/
-    attribute string      StudyId;
-    
-/*! \brief The ID of the scenario in SIMAN server
-
-   This is equivalent to the methods setScenarioId() & getScenarioId()
-*/
-    attribute string      ScenarioId;
-/*! \brief The ID of the user in SIMAN server
-
-   This is equivalent to the methods setUserId() & getUserId()
-*/
-    attribute string      UserId;
-
-/*! \brief Get data from SIMAN and put it to the given study
-
-   This method is called for just created study to make it referenced
-   by this Siman study. Also it fills this study by the checked out
-   data from SIMAN server.
-   Warning: StudyID, ScenarioID and User Id must be set before calling of this method!
-
-   \param theTarget referenced study for checking out
-*/
-    void CheckOut(in Study theTarget);
-
-/*! \brief Get data from the source study and store in SIMAN
-    
-    It works only with already checked out study.
-    \param theModuleName name of the module the check in must be perfrormed for. If empty, check in is performed for all modules.
-*/
-    void CheckIn(in string theModuleName);
-
-/*! \brief Returns the %Study with checked out data
-
-   If study is null, there is no such study in this application instance, or Salome was
-   launched without siman option.
-*/
-    Study getReferencedStudy();
-
-};
-
   //==========================================================================
 /*! \brief %Study Builder Interface
 
@@ -664,7 +601,7 @@ during each working session.
     Defines the instance to the %SComponent.
 */
     void       DefineComponentInstance (in SComponent aComponent,in Object ComponentIOR) raises(LockProtection);
-        
+
 /*! \brief Deletion of a %SComponent
 
   Removes a %SComponent.
@@ -732,7 +669,7 @@ during each working session.
 */
 
     GenericAttribute FindOrCreateAttribute(in  SObject        anObject,
-                                        in  string         aTypeOfAttribute) raises(LockProtection);
+                                         in  string         aTypeOfAttribute) raises(LockProtection);
 
 /*! \brief Looking for an attribute assigned to a %SObject
 
@@ -744,8 +681,8 @@ during each working session.
  */
 
     boolean FindAttribute(in  SObject        anObject,
-                                out GenericAttribute anAttribute,
-                                in  string         aTypeOfAttribute);
+                                 out GenericAttribute anAttribute,
+                                 in  string         aTypeOfAttribute);
 /*! \brief Deleting the attribute assigned to the %SObject
 
     Removes the attribute of a specific type which is assigned to the object.
@@ -755,7 +692,7 @@ during each working session.
 <em>See \ref example17 for an example of this method usage in batchmode of %SALOME application.</em>
 */
     void RemoveAttribute(in  SObject        anObject,
-                        in  string         aTypeOfAttribute) raises(LockProtection);
+                         in  string         aTypeOfAttribute) raises(LockProtection);
 /*!
     Adds a reference between %anObject and %theReferencedObject.
     \param anObject The %SObject which will get a reference
@@ -763,7 +700,7 @@ during each working session.
 */
 
     void Addreference(in SObject anObject,
-                     in SObject theReferencedObject) ;
+                      in SObject theReferencedObject) ;
 
 /*!
     Removes a reference from %anObject to another object.
@@ -802,7 +739,7 @@ Searches for a definite %SObject with a definite GUID and returns True if it fin
 /*! \brief Creation of a new command
 
    Creates a new command which can contain several different actions.
-   
+
 <em>See \ref example3 for an example of this method usage in batchmode of %SALOME application.</em>
 
 */
@@ -821,10 +758,10 @@ Searches for a definite %SObject with a definite GUID and returns True if it fin
     Returns True if at this moment there is a command under execution.
 */
     boolean HasOpenCommand();
-/*! \brief Cancelation of the command
+/*! \brief Cancellation of the command
 
     Cancels all actions declared within the command.
-    
+
 <em>See \ref example17 for an example of this method usage in batchmode of %SALOME application.</em>
 */
     void AbortCommand(); // command management
@@ -855,7 +792,7 @@ Searches for a definite %SObject with a definite GUID and returns True if it fin
     void Redo() raises (LockProtection);
 /*!
     Returns True if at this moment there are any actions which can be canceled.
-    
+
 <em>See \ref example16 for an example of this method usage in batchmode of %SALOME application.</em>
 
 */
@@ -919,7 +856,7 @@ Searches for a definite %SObject with a definite GUID and returns True if it fin
 
 /*!
     Shutdown the StudyManager process.
-*/    
+*/
     oneway void ShutdownWithExit();
 
 /*! \brief Creation of a new study
@@ -967,26 +904,26 @@ Searches for a definite %SObject with a definite GUID and returns True if it fin
 /*! \brief Saving the study in a specified HDF file (or files).
 
     Saves the study in a specified file (or files).
-    \param aUrl The path to the definite file in whcih the study will be saved
+    \param aUrl The path to the definite file in which the study will be saved
     \param aStudy The study which will be saved
     \param theMultiFile If this parameter is True the study will be saved in several files.
 
 <em>See \ref example1 for an example of this method usage in batchmode of %SALOME application.</em>
 */
     boolean  SaveAs(in URL   aUrl, // if the file already exists
-               in Study aStudy,
-               in boolean theMultiFile); // overwrite (as option)
+                in Study aStudy,
+                in boolean theMultiFile); // overwrite (as option)
 /*! \brief Saving the study in a specified ASCII file (or files).
 
     Saves the study in a specified ASCII file (or files).
 
-    \param aUrl The path to the definite file in whcih the study will be saved
+    \param aUrl The path to the definite file in which the study will be saved
     \param aStudy The study which will be saved
     \param theMultiFile If this parameter is True the study will be saved in several files.
 */
     boolean  SaveAsASCII(in URL   aUrl, // if the file already exists
-                     in Study aStudy,
-                     in boolean theMultiFile); // overwrite (as option)
+                      in Study aStudy,
+                      in boolean theMultiFile); // overwrite (as option)
 
 
 /*! \brief List of open studies.
@@ -1044,11 +981,11 @@ Gets the list of open studies
 */
     string ConvertObjectToIOR(in Object theObject);
 /*! \brief Object conversion.
-           
+
     Converts IOR into an object.
     \return    An object
 */
-    Object ConvertIORToObject(in string theIOR); 
+    Object ConvertIORToObject(in string theIOR);
 
 /*!
     Private method, returns an implementation of this StudyManager.
@@ -1056,14 +993,7 @@ Gets the list of open studies
    \param thePID is a process ID of the caller
    \param isLocal is set True if the StudyManager is launched locally with the caller
 */
-    long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal); 
-
-/*! \brief Returns the siman study based on the given study.
-           
-    Creates a new Siman study, or returns just a previously created.
-    \return Siman study, or none if it is not siman mode
-*/
-    SimanStudy GetSimanStudy();
+    long long GetLocalImpl(in string theHostname, in long thePID, out boolean isLocal);
 
   };
 
@@ -1074,7 +1004,7 @@ Gets the list of open studies
    The objects in the %study are built by the %StudyBuilder. The %SObject interface
    provides methods for elementary inquiries, like getting an object %ID or its attribuites.
  \note
+
    <BR><VAR>Tag</VAR> of an item in %SALOME application is an integer value uniquely defining an item
    in the tree-type data structure.
    <BR><VAR>ID</VAR> of an item is a description of item's position in the tree-type data structure.
@@ -1093,69 +1023,71 @@ Gets the list of open studies
     boolean IsNull();
 
 /*! Gets an object %ID
-
    \return ID of the %SObject.
 */
     ID GetID();
-/*!  Acquisition of the father %Component of the %SObject
 
+/*!  Acquisition of the father %Component of the %SObject
   \return The father %Component of the %SObject.
 */
     SComponent GetFatherComponent();
-/*! Acquisition of the father %SObject of the %SObject
 
+/*! Acquisition of the father %SObject of the %SObject
    \return the father %SObject of the given %SObject.
 */
     SObject    GetFather();
-/*! Gets the %tag of a %SObject
 
+/*! Gets the %tag of a %SObject
     \return the %tag of a %SObject.
 */
     short      Tag();
-/*! Gets the depth of a %SObject
 
+/*! Returns a tag of the last child %SObject (if any) of this %SObject.
+    Returns zero if this %SObject has no children.
+*/
+    short      GetLastChildTag();
+
+/*! Gets the depth of a %SObject
     \return the depth of a %SObject.
 */
     short      Depth();
-/*! Looks for subobjects of a given %SObject.
 
+/*! Looks for subobjects of a given %SObject.
     \param atag Tag of the given %SObject
     \return True if it finds a subobject of the %SObject with a definite tag as well as the required subobject.
 */
-
     boolean FindSubObject (in long atag, out SObject obj);
-/*! Looks for attributes of a given %SObject
 
+/*! Looks for attributes of a given %SObject
    \param aTypeOfAttribute String value defining the type of the required attribute of the given %SObject.
    \return True if it finds an attribute of a definite type of the given %SObject as well as the discovered attribute.
 
 <em>See \ref example1 for an example of this method usage in batchmode of %SALOME application.</em>
 */
     boolean FindAttribute(out GenericAttribute anAttribute,
-                                 in  string         aTypeOfAttribute);
-/*! Looks for a %SObject which the given %SObject refers to.
+                                  in  string         aTypeOfAttribute);
 
+/*! Looks for a %SObject which the given %SObject refers to.
     \return The object which the given %SObject refers to as well as True if it finds
     this object.
 */
     boolean ReferencedObject(out SObject obj); // A REVOIR
-/*! Gets all attributes of a given %SObject
 
+/*! Gets all attributes of a given %SObject
     \return The list of all attributes of the given %SObject.
 
 <em>See \ref example17 for an example of this method usage in batchmode of %SALOME application.</em>
 
 */
     ListOfAttributes     GetAllAttributes();
-/*! Gets the study of a given %SObject.
 
+/*! Gets the study of a given %SObject.
     \return The study containing the given %SObject.
 */
     Study GetStudy();
 
 /*! Gets the CORBA object by its own IOR attribute.
     Returns nil, if can't.
-
     \return The CORBA object of the %SObject.
 */
     Object GetObject();
@@ -1220,8 +1152,8 @@ Gets the list of open studies
     string Type();
 
     //! Get the class type
-    string GetClassType();     
-       
+    string GetClassType();
+
     //! Get SObject
     SObject GetSObject();
 
@@ -1443,7 +1375,7 @@ can be called by any component and which provide the following functionality:
 <ul>
     <li> publishing in the study of the objects created by a definite component
     <li> saving/loading of the data created by a definite component. These methods are called by the StudyManager when loading/saving a study containing the data created by a definite component.
-    <li> transforming of the transient references into persistant references (or vice versa) of the SObjects when saving (or loading) a study
+    <li> transforming of the transient references into persistent references (or vice versa) of the SObjects when saving (or loading) a study
     <li> copy/paste common functionality. These methods can be called by any component in order to copy/paste its object created in the study
 </ul>
 
@@ -1534,9 +1466,9 @@ study is saved these references are transformed into persintent IDs.
 
 */
     string IORToLocalPersistentID (in SObject theSObject,
-                                  in string IORString,
-                                  in boolean isMultiFile,
-                                  in boolean isASCII);
+                                   in string IORString,
+                                   in boolean isMultiFile,
+                                   in boolean isASCII);
 /*!
   Transforms PersistentID into IOR of the object. It is called for each
    object in the %study.
@@ -1553,9 +1485,9 @@ study is open, these references are transformed into persintent IORs.
 
 */
     string LocalPersistentIDToIOR (in SObject theSObject,
-                                  in string aLocalPersistentID,
-                                  in boolean isMultiFile,
-                                  in boolean isASCII)
+                                   in string aLocalPersistentID,
+                                   in boolean isMultiFile,
+                                   in boolean isASCII)
       raises (SALOME::SALOME_Exception);
 
     // Publishing in the study