// 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_Document_HeaderFile #define _TDocStd_Document_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_TDocStd_Document_HeaderFile #include #endif #ifndef _TCollection_ExtendedString_HeaderFile #include #endif #ifndef _Handle_TDF_Data_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _TDF_Transaction_HeaderFile #include #endif #ifndef _TDF_DeltaList_HeaderFile #include #endif #ifndef _Handle_TDF_Delta_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _CDM_Document_HeaderFile #include #endif #ifndef _Handle_CDM_Document_HeaderFile #include #endif #ifndef _Standard_Address_HeaderFile #include #endif #ifndef _Handle_TDocStd_CompoundDelta_HeaderFile #include #endif class TDF_Data; class TDF_Delta; class TDF_Label; class TCollection_ExtendedString; class TDF_LabelMap; class TDF_DeltaList; class TCollection_AsciiString; class CDM_Document; class TDocStd_CompoundDelta; //! The contents of a TDocStd_Application, a
//! document is a container for a data framework
//! composed of labels and attributes. As such,
//! TDocStd_Document is the entry point into the data framework.
//! To gain access to the data, you create a document as follows:
//! Handle(TDocStd_Document) MyDF = new TDocStd_Document
//! The document also allows you to manage:
//! - modifications, providing Undo and Redo functions.
//! - command transactions.
//! Warning: The only data saved is the framework (TDF_Data)
class TDocStd_Document : public CDM_Document { public: //! Will Abort any execution, and commit the Undo transaction
//! returns the document which contains . raises an
//! exception if the document is not found.
Standard_EXPORT static Handle_TDocStd_Document Get(const TDF_Label& L) ; //! Constructs a document object defined by the
//! string astorageformat.
Standard_EXPORT TDocStd_Document(const TCollection_ExtendedString& astorageformat); //! the document is saved in a file.
Standard_EXPORT Standard_Boolean IsSaved() const; //! returns True if document differs from the state of last saving.
//! this method have to be called only wroking in the transaction mode
Standard_Boolean IsChanged() const; //! This method have to be called to show document that it has been saved
void SetSaved() ; //! Say to document what it is not saved.
//! Use value, returned earlier by GetSavedTime().
void SetSavedTime(const Standard_Integer theTime) ; //! Returns value of to be used later in SetSavedTime()
Standard_Integer GetSavedTime() const; //! raise if is not saved.
Standard_EXPORT TCollection_ExtendedString GetName() const; //! returns the OS path of the file, in wich one is
//! saved. Raise an exception if is not saved.
Standard_EXPORT TCollection_ExtendedString GetPath() const; Standard_EXPORT void SetData(const Handle(TDF_Data)& data) ; Standard_EXPORT Handle_TDF_Data GetData() const; //! Returns the main label in this data framework.
//! By definition, this is the label with the entry 0:1.
Standard_EXPORT TDF_Label Main() const; //! Returns True if the main label has no attributes
Standard_EXPORT Standard_Boolean IsEmpty() const; //! Returns False if the document has been modified
//! but not recomputed.
Standard_EXPORT Standard_Boolean IsValid() const; //! Notify the label as modified, the Document becomes UnValid.
//! returns True if has been notified as modified.
Standard_EXPORT void SetModified(const TDF_Label& L) ; //! Remove all modifications. After this call The document
//! becomesagain Valid.
Standard_EXPORT void PurgeModified() ; //! Returns the labels which have been modified in
//! this document.
Standard_EXPORT const TDF_LabelMap& GetModified() const; //! Launches a new command. This command may be undone.
Standard_EXPORT void NewCommand() ; //! returns True if a Command transaction is open in the curret .
Standard_EXPORT Standard_Boolean HasOpenCommand() const; //! Opens a new command transaction in this document.
//! You can use HasOpenCommand to see whether a command is already open.
//! Exceptions
//! Standard_DomainError if a command is already open in this document.
Standard_EXPORT void OpenCommand() ; //! Commits documents transactions and fills the
//! transaction manager with documents that have
//! been changed during the transaction.
//! If no command transaction is open, nothing is done.
//! Returns True if a new delta has been added to myUndos.
Standard_EXPORT Standard_Boolean CommitCommand() ; //! Abort the Command transaction. Does nothing If there is
//! no Command transaction open.
Standard_EXPORT void AbortCommand() ; //! The current limit on the number of undos
Standard_EXPORT Standard_Integer GetUndoLimit() const; //! Set the limit on the number of Undo Delta stored 0
//! will disable Undo on the document A negative value
//! means no limit. Note that by default Undo is disabled.
//! Enabling it will take effect with the next call to
//! NewCommand. Of course this limit is the same for Redo
Standard_EXPORT void SetUndoLimit(const Standard_Integer L) ; //! Remove all stored Undos and Redos
Standard_EXPORT void ClearUndos() ; //! Remove all stored Redos
Standard_EXPORT void ClearRedos() ; //! Returns the number of undos stored in this
//! document. If this figure is greater than 0, the method Undo
//! can be used.
Standard_EXPORT Standard_Integer GetAvailableUndos() const; //! Will UNDO one step, returns False if no undo was
//! done (Undos == 0).
//! Otherwise, true is returned and one step in the
//! list of undoes is undone.
Standard_EXPORT Standard_Boolean Undo() ; //! Returns the number of redos stored in this
//! document. If this figure is greater than 0, the method Redo
//! can be used.
Standard_EXPORT Standard_Integer GetAvailableRedos() const; //! Will REDO one step, returns False if no redo was
//! done (Redos == 0).
//! Otherwise, true is returned, and one step in the list of redoes is done again.
Standard_EXPORT Standard_Boolean Redo() ; Standard_EXPORT const TDF_DeltaList& GetUndos() const; Standard_EXPORT const TDF_DeltaList& GetRedos() const; //! Removes the first undo in the list of document undos.
//! It is used in the application when the undo limit is exceed.
Standard_EXPORT void RemoveFirstUndo() ; //! Initializes the procedure of delta compaction
//! Returns false if there is no delta to compact
//! Marks the last delta as a "from" delta
Standard_EXPORT Standard_Boolean InitDeltaCompaction() ; //! Performs the procedure of delta compaction
//! Makes all deltas starting from "from" delta
//! till the last one to be one delta.
Standard_EXPORT Standard_Boolean PerformDeltaCompaction() ; //! Set modifications on labels impacted by external
//! references to the entry. The document becomes invalid
//! and must be recomputed.
Standard_EXPORT void UpdateReferences(const TCollection_AsciiString& aDocEntry) ; //! Recompute if the document was not valid and propagate
//! the reccorded modification.
Standard_EXPORT void Recompute() ; //! This method Update will be called
//! to signal the end of the modified references list.
//! The document should be recomputed and
//! UpdateFromDocuments should be called. Update should
//! returns True in case of success, false otherwise. In
//! case of Failure, additional information can be given in
//! ErrorString.
//! Update the document by propagation
//! ==================================
//! Update the document from internal stored
//! modifications. If you want to undoing this
//! operation, please call NewCommand before.
//! to change format (advanced programming)
//! ================
Standard_EXPORT virtual void Update(const Handle(CDM_Document)& aToDocument,const Standard_Integer aReferenceIdentifier,const Standard_Address aModifContext) ; Standard_EXPORT virtual TCollection_ExtendedString StorageFormat() const; //! methods for the nested transaction mode
Standard_EXPORT virtual void ChangeStorageFormat(const TCollection_ExtendedString& newStorageFormat) ; //! Sets nested transaction mode if isAllowed == Standard_True
Standard_EXPORT void SetNestedTransactionMode(const Standard_Boolean isAllowed = Standard_True) ; //! Returns Standard_True if mode is set
Standard_Boolean IsNestedTransactionMode() const; //! if theTransactionOnly is True changes is denied outside transactions
void SetModificationMode(const Standard_Boolean theTransactionOnly) ; //! returns True if changes allowed only inside transactions
Standard_Boolean ModificationMode() const; DEFINE_STANDARD_RTTI(TDocStd_Document) protected: //! Returns Standard_True done
Standard_EXPORT virtual Standard_Boolean CommitTransaction() ; Standard_EXPORT virtual void AbortTransaction() ; //! methods for protection of changes outside transactions
Standard_EXPORT virtual void OpenTransaction() ; TCollection_ExtendedString myStorageFormat; TDF_DeltaList myUndos; TDF_DeltaList myRedos; private: //! Appends delta to the first delta in the myUndoFILO
//! private methods
//! ===============
Standard_EXPORT static void AppendDeltaToTheFirst(const Handle(TDocStd_CompoundDelta)& theDelta1,const Handle(TDF_Delta)& theDelta2) ; Handle_TDF_Data myData; Standard_Integer myUndoLimit; TDF_Transaction myUndoTransaction; Handle_TDF_Delta myFromUndo; Handle_TDF_Delta myFromRedo; Standard_Integer mySaveTime; Standard_Boolean myIsNestedTransactionMode; TDF_DeltaList myUndoFILO; Standard_Boolean myOnlyTransactionModification; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif