// 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 _CDM_Document_HeaderFile #define _CDM_Document_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_CDM_Document_HeaderFile #include #endif #ifndef _TColStd_SequenceOfExtendedString_HeaderFile #include #endif #ifndef _TCollection_ExtendedString_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _CDM_ListOfReferences_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Handle_CDM_MetaData_HeaderFile #include #endif #ifndef _Standard_GUID_HeaderFile #include #endif #ifndef _Handle_CDM_Application_HeaderFile #include #endif #ifndef _Standard_Transient_HeaderFile #include #endif #ifndef _Standard_Address_HeaderFile #include #endif #ifndef _Standard_ExtString_HeaderFile #include #endif #ifndef _Handle_Resource_Manager_HeaderFile #include #endif #ifndef _Standard_OStream_HeaderFile #include #endif #ifndef _CDM_CanCloseStatus_HeaderFile #include #endif #ifndef _Handle_CDM_Reference_HeaderFile #include #endif class CDM_MetaData; class CDM_Application; class Standard_NoSuchObject; class Standard_Failure; class Standard_DomainError; class CDM_Reference; class CDM_ReferenceIterator; class TCollection_ExtendedString; class TColStd_SequenceOfExtendedString; class Resource_Manager; class Standard_GUID; //! An applicative document is an instance of a class inheriting CDM_Document.
//! These documents have the following properties:
//! - they can have references to other documents.
//! - the modifications of a document are propagated to the referencing
//! documents.
//! - a document can be stored in different formats, with or
//! without a persistent model.
//! - the drivers for storing and retrieving documents are
//! plugged in when necessary.
//! - a document has a modification counter. This counter is
//! incremented when the document is modified. When a document
//! is stored, the current counter value is memorized as the
//! last storage version of the document. A document is
//! considered to be modified when the counter value is
//! different from the storage version. Once the document is
//! saved the storage version and the counter value are
//! identical. The document is now not considered to be
//! modified.
//! - a reference is a link between two documents. A reference has two
//! components: the "From Document" and the "To Document". When
//! a reference is created, an identifier of the reference is generated.
//! This identifier is unique in the scope of the From Document and
//! is conserved during storage and retrieval. This means that the
//! referenced document will be always accessible through this
//! identifier.
//! - a reference memorizes the counter value of the To Document when
//! the reference is created. The From Document is considered to
//! be up to date relative to the To Document when the
//! reference counter value is equal to the To Document counter value.
//! - retrieval of a document having references does not imply
//! the retrieving of the referenced documents.
class CDM_Document : public Standard_Transient { public: //! The Update method will be called once for each
//! reference, but it should not perform any computation,
//! to avoid multiple computation of a same document.
Standard_EXPORT virtual void Update(const Handle(CDM_Document)& aToDocument,const Standard_Integer aReferenceIdentifier,const Standard_Address aModifContext) ; //! 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.
Standard_EXPORT virtual Standard_Boolean Update(TCollection_ExtendedString& ErrorString) ; //! The Storage Format is the key which is used to determine in the
//! application resources the storage driver plugin, the file
//! extension and other data used to store the document.
Standard_EXPORT virtual TCollection_ExtendedString StorageFormat() const = 0; //! by default empties the extensions.
//!
Standard_EXPORT virtual void Extensions(TColStd_SequenceOfExtendedString& Extensions) const; //! This method can be redefined to extract another document in
//! a different format. For example, to extract a MDTV-Shape
//! from an applicative document.
Standard_EXPORT virtual Standard_Boolean GetAlternativeDocument(const TCollection_ExtendedString& aFormat,Handle(CDM_Document)& anAlternativeDocument) ; //! Creates a reference from this document to {anOtherDocument}.
//! Returns a reference identifier. This reference identifier
//! is unique in the document and will not be used for the
//! next references, even after the storing of the document.
//! If there is already a reference between the two documents,
//! the reference is not created, but its reference identifier
//! is returned.
Standard_EXPORT Standard_Integer CreateReference(const Handle(CDM_Document)& anOtherDocument) ; //! Removes the reference between the From Document and the
//! To Document identified by a reference identifier.
Standard_EXPORT void RemoveReference(const Standard_Integer aReferenceIdentifier) ; //! Removes all references having this document for From Document.
Standard_EXPORT void RemoveAllReferences() ; //! Returns the To Document of the reference identified by
//! aReferenceIdentifier. If the ToDocument is stored and
//! has not yet been retrieved, this method will retrieve it.
Standard_EXPORT Handle_CDM_Document Document(const Standard_Integer aReferenceIdentifier) const; //! returns True if the To Document of the reference
//! identified by aReferenceIdentifier is in session, False
//! if it corresponds to a not yet retrieved document.
Standard_EXPORT Standard_Boolean IsInSession(const Standard_Integer aReferenceIdentifier) const; //! returns True if the To Document of the reference
//! identified by aReferenceIdentifier has already been stored,
//! False otherwise.
Standard_EXPORT Standard_Boolean IsStored(const Standard_Integer aReferenceIdentifier) const; //! returns the name of the metadata of the To Document of
//! the reference identified by aReferenceIdentifier.
Standard_EXPORT TCollection_ExtendedString Name(const Standard_Integer aReferenceIdentifier) const; //! call virtual method Update on all referencing
//! documents. This method keeps the list of the --
//! documents to process.It may be the starting of an
//! update -- cycle. If not, the reentrant calls made by
//! Update method (without argument) will append the
//! referencing documents to the list and call the Update method
//! (with arguments). Only the first call to UpdateFromDocuments
//! generate call to Update().
Standard_EXPORT void UpdateFromDocuments(const Standard_Address aModifContext) const; //! returns the number of references having this document as
//! From Document.
Standard_EXPORT Standard_Integer ToReferencesNumber() const; //! returns the number of references having this document as
//! To Document.
Standard_EXPORT Standard_Integer FromReferencesNumber() const; //! returns True is this document references aDocument;
//!
Standard_EXPORT Standard_Boolean ShallowReferences(const Handle(CDM_Document)& aDocument) const; //! returns True is this document references aDocument;
//!
Standard_EXPORT Standard_Boolean DeepReferences(const Handle(CDM_Document)& aDocument) const; //! Copies a reference to this document. This method
//! avoid retrieval of referenced document. The arguments
//! are the original document and a valid reference
//! identifier Returns the local identifier.
//!
Standard_EXPORT Standard_Integer CopyReference(const Handle(CDM_Document)& aFromDocument,const Standard_Integer aReferenceIdentifier) ; //! indicates that this document cannot be modified.
Standard_EXPORT Standard_Boolean IsReadOnly() const; //! indicates that the referenced document cannot be modified,
Standard_EXPORT Standard_Boolean IsReadOnly(const Standard_Integer aReferenceIdentifier) const; Standard_EXPORT void SetIsReadOnly() ; Standard_EXPORT void UnsetIsReadOnly() ; //! Indicates that this document has been modified.
//! This method increments the modification counter.
//!
Standard_EXPORT void Modify() ; //! returns the current modification counter.
Standard_EXPORT Standard_Integer Modifications() const; Standard_EXPORT void UnModify() ; //! returns true if the modification counter found in the given
//! reference is equal to the actual modification counter of
//! the To Document. This method is able to deal with a reference
//! to a not retrieved document.
Standard_EXPORT Standard_Boolean IsUpToDate(const Standard_Integer aReferenceIdentifier) const; //! Resets the modification counter in the given reference
//! to the actual modification counter of its To Document.
//! This method should be called after the application has updated
//! this document.
Standard_EXPORT void SetIsUpToDate(const Standard_Integer aReferenceIdentifier) ; //! associates a comment with this document.
Standard_EXPORT void SetComment(const TCollection_ExtendedString& aComment) ; //! appends a comment into comments of this document.
Standard_EXPORT void AddComment(const TCollection_ExtendedString& aComment) ; //! associates a comments with this document.
Standard_EXPORT void SetComments(const TColStd_SequenceOfExtendedString& aComments) ; //! returns the associated comments through .
//! Returns empty sequence if no comments are associated.
Standard_EXPORT void Comments(TColStd_SequenceOfExtendedString& aComments) const; //! returns the first of associated comments. By defaut
//! the comment is an empty string.
Standard_EXPORT Standard_ExtString Comment() const; //! Returns an alphanumeric string identifying this document
//! in a unique manner in the current process. The presentation
//! may change when the document is stored.
//! Tries to get the 'FileFormat`.Presentation resource
//! This item is used to give a default presentation
//! to the document.
Standard_EXPORT Standard_ExtString Presentation() ; //! returns the document having the given alphanumeric presentation.
Standard_EXPORT static Handle_CDM_Document FindFromPresentation(const TCollection_ExtendedString& aPresentation) ; //! indicates whether a document having the given presentation
//! does exist.
Standard_EXPORT static Standard_Boolean FindPresentation(const TCollection_ExtendedString& aPresentation) ; Standard_EXPORT Standard_Boolean IsStored() const; //! returns the value of the modification counter at the
//! time of storage. By default returns 0.
Standard_EXPORT Standard_Integer StorageVersion() const; //! associates database information to a document which
//! has been stored. The name of the document is now the
//! name which has beenused to store the data.
Standard_EXPORT void SetMetaData(const Handle(CDM_MetaData)& aMetaData) ; Standard_EXPORT void UnsetIsStored() ; Standard_EXPORT Handle_CDM_MetaData MetaData() const; Standard_EXPORT TCollection_ExtendedString Folder() const; //! defines the folder in which the object should be stored.
Standard_EXPORT void SetRequestedFolder(const TCollection_ExtendedString& aFolder) ; Standard_EXPORT TCollection_ExtendedString RequestedFolder() const; Standard_EXPORT Standard_Boolean HasRequestedFolder() const; //! defines the name under which the object should be stored.
Standard_EXPORT void SetRequestedName(const TCollection_ExtendedString& aName) ; //! determines under which the document is going to be
//! store. By default the name of the document wil be --
//! used. If the document has no name its presentation
//! will be used.
Standard_EXPORT TCollection_ExtendedString RequestedName() ; Standard_EXPORT void SetRequestedPreviousVersion(const TCollection_ExtendedString& aPreviousVersion) ; Standard_EXPORT void UnsetRequestedPreviousVersion() ; Standard_EXPORT Standard_Boolean HasRequestedPreviousVersion() const; Standard_EXPORT TCollection_ExtendedString RequestedPreviousVersion() const; //! defines the Comment with which the object should be stored.
Standard_EXPORT void SetRequestedComment(const TCollection_ExtendedString& aComment) ; Standard_EXPORT TCollection_ExtendedString RequestedComment() const; //! read (or rereads) the following resource.
Standard_EXPORT void LoadResources() ; Standard_EXPORT Standard_Boolean FindFileExtension() ; //! gets the Desktop.Domain.Application.`FileFormat`.FileExtension resource.
Standard_EXPORT TCollection_ExtendedString FileExtension() ; Standard_EXPORT Standard_Boolean FindDataType() ; //! this datatype will be used if the DBMS deals with this concept
//! gets the `FileFormat`.DataType resource.
//! concept.
Standard_EXPORT TCollection_ExtendedString DataType() ; Standard_EXPORT Standard_Boolean FindVersionDataType() ; //! this datatype will be used if the DBMS deals with this concept
//! gets the `FileFormat`.VersionDataType resource.
//!
Standard_EXPORT TCollection_ExtendedString VersionDataType() ; Standard_EXPORT Standard_Boolean FindDescription() ; //! gets the `FileFormat`.Description resource.
Standard_EXPORT TCollection_ExtendedString Description() ; Standard_EXPORT Standard_Boolean FindDomain() ; //! gets the `FileFormat`.Domain resource.
Standard_EXPORT TCollection_ExtendedString Domain() ; Standard_EXPORT Standard_Boolean FindStoragePlugin() ; Standard_EXPORT Standard_GUID StoragePlugin() ; //! returns true if the version is greater than the
//! storage version
Standard_EXPORT Standard_Boolean IsModified() const; Standard_EXPORT Standard_OStream& Print(Standard_OStream& anOStream) const; Standard_OStream& operator << (Standard_OStream& anOStream); Standard_EXPORT Standard_Boolean IsOpened() const; Standard_EXPORT void Open(const Handle(CDM_Application)& anApplication) ; Standard_EXPORT CDM_CanCloseStatus CanClose() const; Standard_EXPORT void Close() ; Standard_EXPORT const Handle_CDM_Application& Application() const; //! A referenced document may indicate through this
//! virtual method that it does not allow the closing of
//! aDocument which it references through the reference
//! aReferenceIdentifier. By default returns Standard_True;;
Standard_EXPORT virtual Standard_Boolean CanCloseReference(const Handle(CDM_Document)& aDocument,const Standard_Integer aReferenceIdentifier) const; //! A referenced document may update its internal
//! data structure when {aDocument} which it references
//! through the reference {aReferenceIdentifier} is being closed.
//! By default this method does nothing.
Standard_EXPORT virtual void CloseReference(const Handle(CDM_Document)& aDocument,const Standard_Integer aReferenceIdentifier) ; //! returns true if the document corresponding to the
//! given reference has been retrieved and opened.
//! Otherwise returns false. This method does not retrieve
//! the referenced document
Standard_EXPORT Standard_Boolean IsOpened(const Standard_Integer aReferenceIdentifier) const; Standard_EXPORT void CreateReference(const Handle(CDM_MetaData)& aMetaData,const Standard_Integer aReferenceIdentifier,const Handle(CDM_Application)& anApplication,const Standard_Integer aToDocumentVersion,const Standard_Boolean UseStorageConfiguration) ; Standard_EXPORT Standard_Integer CreateReference(const Handle(CDM_MetaData)& aMetaData,const Handle(CDM_Application)& anApplication,const Standard_Integer aDocumentVersion,const Standard_Boolean UseStorageConfiguration) ; Standard_EXPORT Standard_Integer ReferenceCounter() const; //! the following method should be used instead:
//!
//! Update(me:mutable; ErrorString: out ExtendedString from TCollection)
//! returns Boolean from Standard
Standard_EXPORT virtual void Update() ; friend class CDM_Reference; friend class CDM_ReferenceIterator; friend class CDM_Application; DEFINE_STANDARD_RTTI(CDM_Document) protected: Standard_EXPORT CDM_Document(); Standard_EXPORT void Destroy() ; ~CDM_Document() { Destroy(); } Standard_Boolean myResourcesAreLoaded; private: //! the manager returned by this method will be
//! used to search for the following resource items.
Standard_EXPORT Handle_Resource_Manager StorageResource() ; Standard_EXPORT Handle_CDM_Reference Reference(const Standard_Integer aReferenceIdentifier) const; Standard_EXPORT void ComputePresentation() ; Standard_EXPORT void UnvalidPresentation() ; Standard_EXPORT void AddToReference(const Handle(CDM_Reference)& aReference) ; Standard_EXPORT void AddFromReference(const Handle(CDM_Reference)& aReference) ; Standard_EXPORT void RemoveFromReference(const Standard_Integer aReferenceIdentifier) ; Standard_EXPORT void SetModifications(const Standard_Integer Modifications) ; Standard_EXPORT void SetReferenceCounter(const Standard_Integer aReferenceCounter) ; TColStd_SequenceOfExtendedString myComments; TCollection_ExtendedString myPresentation; Standard_Boolean myValidPresentation; CDM_ListOfReferences myFromReferences; CDM_ListOfReferences myToReferences; Standard_Integer myVersion; Standard_Integer myActualReferenceIdentifier; Standard_Integer myStorageVersion; Handle_CDM_MetaData myMetaData; TCollection_ExtendedString myRequestedComment; TCollection_ExtendedString myRequestedFolder; Standard_Boolean myRequestedFolderIsDefined; TCollection_ExtendedString myRequestedName; Standard_Boolean myRequestedNameIsDefined; Standard_Boolean myRequestedPreviousVersionIsDefined; TCollection_ExtendedString myRequestedPreviousVersion; TCollection_ExtendedString myFileExtension; TCollection_ExtendedString myDataType; TCollection_ExtendedString myVersionDataType; TCollection_ExtendedString myDescription; TCollection_ExtendedString myDomain; TCollection_ExtendedString myDefaultPresentation; Standard_Boolean myFileExtensionWasFound; Standard_Boolean myDataTypeWasFound; Standard_Boolean myVersionDataTypeWasFound; Standard_Boolean myDescriptionWasFound; Standard_Boolean myDomainWasFound; Standard_Boolean myStoragePluginWasFound; Standard_Boolean myDefaultPresentationWasFound; Standard_GUID myStoragePlugin; Handle_CDM_Application myApplication; }; // other Inline functions and methods (like "C++: function call" methods) #endif