Salome HOME
Performance optimization: allow to put temporary objects into selection attributes...
[modules/shaper.git] / src / ModelAPI / ModelAPI_Session.h
index 5c927e7d3eec56226d1b56c43e9e9cbe23acf550..2f778aa2e6ee6b9e2859338e41e7e5676c36d281 100644 (file)
@@ -44,9 +44,12 @@ class MODELAPI_EXPORT ModelAPI_Session
   //! Closes all documents
   virtual void closeAll() = 0;
 
-  //! Starts a new operation (opens a tansaction)
+  //! Starts a new operation (opens a transaction)
   //! \param theId of operation for history (optional)
-  virtual void startOperation(const std::string& theId = "") = 0;
+  //! \param theAttachedToNested if it is true, it means that this transaction is attached to the nested 
+  //!          where it is located and will be commited on the next commit with the nested
+  virtual void startOperation(
+    const std::string& theId = "", const bool theAttachedToNested = false) = 0;
   //! Finishes the previously started operation (closes the transaction)
   virtual void finishOperation() = 0;
   //! Aborts the operation 
@@ -93,6 +96,9 @@ class MODELAPI_EXPORT ModelAPI_Session
   /// Returns all the opened documents of the session (without postponed)
   virtual std::list<std::shared_ptr<ModelAPI_Document> > allOpenedDocuments() = 0;
 
+  /// Returns true if document is not loaded yet
+  virtual bool isLoadByDemand(const std::string theDocID) = 0;
+
   /// Copies the document to the new one with the given id
   virtual std::shared_ptr<ModelAPI_Document> copy(std::shared_ptr<ModelAPI_Document> theSource,
                                                     std::string theID) = 0;
@@ -105,6 +111,9 @@ class MODELAPI_EXPORT ModelAPI_Session
   {
   }
 
+  /// Returns the global identifier of the current transaction (needed for the update algo)
+  virtual int transactionID() = 0;
+
  protected:
   /// Sets the session interface implementation (once per application launch)
   static void setSession(std::shared_ptr<ModelAPI_Session> theManager);