+
+ //! Loads the OCAF document from the file.
+ //! \param theFileName full name of the file to load
+ //! \returns true if file was loaded successfully
+ MODEL_EXPORT virtual bool load(const char* theFileName);
+
+ //! Saves the OCAF document to the file.
+ //! \param theFileName full name of the file to store
+ //! \param theResults the result full file names that were stored by "save"
+ //! \returns true if file was stored successfully
+ MODEL_EXPORT virtual bool save(const char* theFileName, std::list<std::string>& theResults);
+
+ //! Closes all documents
+ MODEL_EXPORT virtual void closeAll();
+
+ //! Starts a new operation (opens a transaction)
+ //! \param theId string-identifier of the started transaction
+ //! \param theAttachedToNested if it is true,
+ //! it means that this transaction is attached to the nested
+ //! where it is located and will be committed on the next commit with the nested
+ MODEL_EXPORT virtual void startOperation(
+ const std::string& theId = "", const bool theAttachedToNested = false);
+ //! Finishes the previously started operation (closes the transaction)
+ MODEL_EXPORT virtual void finishOperation();
+ //! Aborts the operation
+ MODEL_EXPORT virtual void abortOperation();
+ //! Returns true if operation has been started, but not yet finished or aborted
+ MODEL_EXPORT virtual bool isOperation();
+ //! Returns true if document was modified (since creation/opening)
+ MODEL_EXPORT virtual bool isModified();
+
+ //! Returns True if there are available Undos
+ MODEL_EXPORT virtual bool canUndo();
+ //! Undoes last operation
+ MODEL_EXPORT virtual void undo();
+ //! Returns True if there are available Redos
+ MODEL_EXPORT virtual bool canRedo();
+ //! Redoes last operation
+ MODEL_EXPORT virtual void redo();
+ //! Returns stack of performed operations
+ MODEL_EXPORT virtual std::list<std::string> undoList();
+ //! Returns stack of rolled back operations
+ MODEL_EXPORT virtual std::list<std::string> redoList();
+