// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _TDocStd_MultiTransactionManager_HeaderFile #define _TDocStd_MultiTransactionManager_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_TDocStd_MultiTransactionManager_HeaderFile #include #endif #ifndef _TDocStd_SequenceOfDocument_HeaderFile #include #endif #ifndef _TDocStd_SequenceOfApplicationDelta_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _MMgt_TShared_HeaderFile #include #endif #ifndef _Standard_OStream_HeaderFile #include #endif #ifndef _Handle_TDocStd_Document_HeaderFile #include #endif class TDocStd_SequenceOfApplicationDelta; class TCollection_ExtendedString; class TDocStd_Document; class TDocStd_SequenceOfDocument; //! Class for synchronization of transactions within multiple documents.
//! Each transaction of this class involvess one transaction in each modified document.
class TDocStd_MultiTransactionManager : public MMgt_TShared { public: //! Constructor
Standard_EXPORT TDocStd_MultiTransactionManager(); //! Sets undo limit for the manager and all documents.
Standard_EXPORT void SetUndoLimit(const Standard_Integer theLimit) ; //! Returns undo limit for the manager.
Standard_Integer GetUndoLimit() const; //! Undoes the current transaction of the manager.
//! It calls the Undo () method of the document being
//! on top of the manager list of undos (list.First())
//! and moves the list item to the top of the list of manager
//! redos (list.Prepend(item)).
Standard_EXPORT void Undo() ; //! Redoes the current transaction of the application. It calls
//! the Redo () method of the document being on top of the
//! manager list of redos (list.First()) and moves the list
//! item to the top of the list of manager undos (list.Prepend(item)).
Standard_EXPORT void Redo() ; //! Returns available manager undos.
const TDocStd_SequenceOfApplicationDelta& GetAvailableUndos() const; //! Returns available manager redos.
const TDocStd_SequenceOfApplicationDelta& GetAvailableRedos() const; //! Opens transaction in each document and sets the flag that
//! transaction is opened. If there are already opened transactions in the documents,
//! these transactions will be aborted before openning new ones.
Standard_EXPORT void OpenCommand() ; //! Unsets the flag of started manager transaction and aborts
//! transaction in each document.
Standard_EXPORT void AbortCommand() ; //! Commits transaction in all documents and fills the transaction manager
//! with the documents that have been changed during the transaction.
//! Returns True if new data has been added to myUndos.
//! NOTE: All nested transactions in the documents will be commited.
Standard_EXPORT Standard_Boolean CommitCommand() ; //! Makes the same steps as the previous function but defines the name for transaction.
//! Returns True if new data has been added to myUndos.
Standard_EXPORT Standard_Boolean CommitCommand(const TCollection_ExtendedString& theName) ; //! Returns true if a transaction is opened.
Standard_Boolean HasOpenCommand() const; //! Removes undo information from the list of undos of the manager and
//! all documents which have been modified during the transaction.
Standard_EXPORT void RemoveLastUndo() ; //! Dumps transactions in undos and redos
Standard_EXPORT void DumpTransaction(Standard_OStream& theOS) const; //! Adds the document to the transaction manager and
//! checks if it has been already added
Standard_EXPORT void AddDocument(const Handle(TDocStd_Document)& theDoc) ; //! Removes the document from the transaction manager.
Standard_EXPORT void RemoveDocument(const Handle(TDocStd_Document)& theDoc) ; //! Returns the added documents to the transaction manager.
const TDocStd_SequenceOfDocument& Documents() const; //! Sets nested transaction mode if isAllowed == Standard_True
//! NOTE: field myIsNestedTransactionMode exists only for synchronization
//! between several documents and has no effect on transactions
//! of multitransaction manager.
Standard_EXPORT void SetNestedTransactionMode(const Standard_Boolean isAllowed = Standard_True) ; //! Returns Standard_True if NestedTransaction mode is set.
//! Methods for protection of changes outside transactions
Standard_Boolean IsNestedTransactionMode() const; //! If theTransactionOnly is True, denies all changes outside transactions.
Standard_EXPORT void SetModificationMode(const Standard_Boolean theTransactionOnly) ; //! Returns True if changes are allowed only inside transactions.
Standard_Boolean ModificationMode() const; //! Clears undos in the manager and in documents.
Standard_EXPORT void ClearUndos() ; //! Clears redos in the manager and in documents.
Standard_EXPORT void ClearRedos() ; DEFINE_STANDARD_RTTI(TDocStd_MultiTransactionManager) protected: private: TDocStd_SequenceOfDocument myDocuments; TDocStd_SequenceOfApplicationDelta myUndos; TDocStd_SequenceOfApplicationDelta myRedos; Standard_Integer myUndoLimit; Standard_Boolean myOpenTransaction; Standard_Boolean myIsNestedTransactionMode; Standard_Boolean myOnlyTransactionModification; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif