Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes
CDF_Application Class Reference

#include <CDF_Application.hxx>

Inheritance diagram for CDF_Application:
Inheritance graph
[legend]

Public Member Functions

virtual void NewDocument (const TCollection_ExtendedString &theFormat, occ::handle< CDM_Document > &theDoc)
 Constructs an new empty document. This document will have the specified format. If InitDocument() is redefined for a specific application, the new document is handled by the applicative session.
 
virtual void InitDocument (const occ::handle< CDM_Document > &theDoc) const
 Initialize a document for the applicative session. This virtual function is called by NewDocument and should be redefined for each specific application.
 
void Open (const occ::handle< CDM_Document > &aDocument)
 puts the document in the current session directory and calls the virtual method Activate on it.
 
CDM_CanCloseStatus CanClose (const occ::handle< CDM_Document > &aDocument)
 
void Close (const occ::handle< CDM_Document > &aDocument)
 removes the document of the current session directory and closes the document;
 
occ::handle< CDM_DocumentRetrieve (const TCollection_ExtendedString &aFolder, const TCollection_ExtendedString &aName, const bool UseStorageConfiguration=true, const occ::handle< PCDM_ReaderFilter > &theFilter=occ::handle< PCDM_ReaderFilter >(), const Message_ProgressRange &theRange=Message_ProgressRange())
 This method retrieves a document from the database. If the Document references other documents which have been updated, the latest version of these documents will be used if {UseStorageConfiguration} is true. The content of {aFolder}, {aName} and {aVersion} depends on the Database Manager system. If the DBMS is only based on the OS, {aFolder} is a directory and {aName} is the name of a file. In this case the use of the syntax with {aVersion} has no sense. For example:
 
occ::handle< CDM_DocumentRetrieve (const TCollection_ExtendedString &aFolder, const TCollection_ExtendedString &aName, const TCollection_ExtendedString &aVersion, const bool UseStorageConfiguration=true, const occ::handle< PCDM_ReaderFilter > &theFilter=occ::handle< PCDM_ReaderFilter >(), const Message_ProgressRange &theRange=Message_ProgressRange())
 This method retrieves a document from the database. If the Document references other documents which have been updated, the latest version of these documents will be used if {UseStorageConfiguration} is true. If the DBMS is only based on the OS, this syntax should not be used.
 
PCDM_ReaderStatus CanRetrieve (const TCollection_ExtendedString &theFolder, const TCollection_ExtendedString &theName, const bool theAppendMode)
 
PCDM_ReaderStatus CanRetrieve (const TCollection_ExtendedString &theFolder, const TCollection_ExtendedString &theName, const TCollection_ExtendedString &theVersion, const bool theAppendMode)
 
PCDM_ReaderStatus GetRetrieveStatus () const
 Checks status after Retrieve.
 
void Read (Standard_IStream &theIStream, occ::handle< CDM_Document > &theDocument, const occ::handle< PCDM_ReaderFilter > &theFilter=occ::handle< PCDM_ReaderFilter >(), const Message_ProgressRange &theRange=Message_ProgressRange())
 Reads theDocument from standard SEEKABLE stream theIStream, the stream should support SEEK functionality.
 
virtual occ::handle< PCDM_ReaderReaderFromFormat (const TCollection_ExtendedString &aFormat)
 Returns instance of read driver for specified format.
 
virtual occ::handle< PCDM_StorageDriverWriterFromFormat (const TCollection_ExtendedString &aFormat)
 Returns instance of storage driver for specified format.
 
bool Format (const TCollection_ExtendedString &aFileName, TCollection_ExtendedString &theFormat)
 try to retrieve a Format directly in the file or in application resource by using extension. returns True if found
 
const char16_tDefaultFolder ()
 
bool SetDefaultFolder (const char16_t *const aFolder)
 
occ::handle< CDF_MetaDataDriverMetaDataDriver () const
 returns MetaDatdDriver of this application
 
- Public Member Functions inherited from CDM_Application
virtual occ::handle< Resource_ManagerResources ()=0
 The manager returned by this virtual method will be used to search for Format.Retrieval resource items.
 
virtual occ::handle< Message_MessengerMessageDriver ()
 Returns default messenger;.
 
virtual void BeginOfUpdate (const occ::handle< CDM_Document > &aDocument)
 this method is called before the update of a document. By default, writes in MessageDriver().
 
virtual void EndOfUpdate (const occ::handle< CDM_Document > &aDocument, const bool theStatus, const TCollection_ExtendedString &ErrorString)
 this method is called after the update of a document. By default, writes in MessageDriver().
 
void Write (const char16_t *const aString)
 writes the string in the application MessagerDriver.
 
virtual TCollection_ExtendedString Name () const
 Returns the application name.
 
virtual TCollection_AsciiString Version () const
 Returns the application version.
 
virtual NCollection_DataMap< TCollection_ExtendedString, occ::handle< CDM_MetaData > > & MetaDataLookUpTable ()
 Returns MetaData LookUpTable.
 
void DumpJson (Standard_OStream &theOStream, int theDepth=-1) const
 Dumps the content of me into the stream.
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor.
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing.
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter.
 
virtual ~Standard_Transient ()=default
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
bool IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
bool IsInstance (const char *const theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
bool IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
bool IsKind (const char *const theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
 
int GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations.
 
int DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Static Public Member Functions

static occ::handle< CDF_ApplicationLoad (const Standard_GUID &aGUID)
 plugs an application.
 
- Static Public Member Functions inherited from Standard_Transient
static constexpr const charget_type_name ()
 Returns a type descriptor about this object.
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class.
 

Data Fields

occ::handle< CDF_MetaDataDrivermyMetaDataDriver
 
occ::handle< CDF_DirectorymyDirectory
 

Protected Member Functions

 CDF_Application ()
 
- Protected Member Functions inherited from CDM_Application
 CDM_Application ()
 
void SetDocumentVersion (const occ::handle< CDM_Document > &aDocument, const occ::handle< CDM_MetaData > &aMetaData) const
 
void SetReferenceCounter (const occ::handle< CDM_Document > &aDocument, const int aReferenceCounter)
 

Protected Attributes

PCDM_ReaderStatus myRetrievableStatus
 
NCollection_IndexedDataMap< TCollection_ExtendedString, occ::handle< PCDM_RetrievalDriver > > myReaders
 
NCollection_IndexedDataMap< TCollection_ExtendedString, occ::handle< PCDM_StorageDriver > > myWriters
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 

Constructor & Destructor Documentation

◆ CDF_Application()

CDF_Application::CDF_Application ( )
protected

Member Function Documentation

◆ CanClose()

CDM_CanCloseStatus CDF_Application::CanClose ( const occ::handle< CDM_Document > & aDocument)

◆ CanRetrieve() [1/2]

PCDM_ReaderStatus CDF_Application::CanRetrieve ( const TCollection_ExtendedString & theFolder,
const TCollection_ExtendedString & theName,
const bool theAppendMode )

◆ CanRetrieve() [2/2]

PCDM_ReaderStatus CDF_Application::CanRetrieve ( const TCollection_ExtendedString & theFolder,
const TCollection_ExtendedString & theName,
const TCollection_ExtendedString & theVersion,
const bool theAppendMode )

◆ Close()

void CDF_Application::Close ( const occ::handle< CDM_Document > & aDocument)

removes the document of the current session directory and closes the document;

◆ DefaultFolder()

const char16_t * CDF_Application::DefaultFolder ( )

◆ Format()

bool CDF_Application::Format ( const TCollection_ExtendedString & aFileName,
TCollection_ExtendedString & theFormat )

try to retrieve a Format directly in the file or in application resource by using extension. returns True if found

◆ GetRetrieveStatus()

PCDM_ReaderStatus CDF_Application::GetRetrieveStatus ( ) const
inline

Checks status after Retrieve.

◆ InitDocument()

virtual void CDF_Application::InitDocument ( const occ::handle< CDM_Document > & theDoc) const
virtual

Initialize a document for the applicative session. This virtual function is called by NewDocument and should be redefined for each specific application.

Reimplemented in TDocStd_Application, and XCAFApp_Application.

◆ Load()

static occ::handle< CDF_Application > CDF_Application::Load ( const Standard_GUID & aGUID)
static

plugs an application.

Open is used

  • for opening a Document that has been created in an application
  • for opening a Document from the database
  • for opening a Document from a file. The Open methods always add the document in the session directory and calls the virtual Activate method. The document is considered to be opened until Close is used. To be storable, a document must be opened by an application since the application resources are needed to store it.

◆ MetaDataDriver()

occ::handle< CDF_MetaDataDriver > CDF_Application::MetaDataDriver ( ) const

returns MetaDatdDriver of this application

◆ NewDocument()

virtual void CDF_Application::NewDocument ( const TCollection_ExtendedString & theFormat,
occ::handle< CDM_Document > & theDoc )
virtual

Constructs an new empty document. This document will have the specified format. If InitDocument() is redefined for a specific application, the new document is handled by the applicative session.

Reimplemented in TDocStd_Application.

◆ Open()

void CDF_Application::Open ( const occ::handle< CDM_Document > & aDocument)

puts the document in the current session directory and calls the virtual method Activate on it.

◆ Read()

void CDF_Application::Read ( Standard_IStream & theIStream,
occ::handle< CDM_Document > & theDocument,
const occ::handle< PCDM_ReaderFilter > & theFilter = occ::handlePCDM_ReaderFilter >(),
const Message_ProgressRange & theRange = Message_ProgressRange() )

Reads theDocument from standard SEEKABLE stream theIStream, the stream should support SEEK functionality.

◆ ReaderFromFormat()

virtual occ::handle< PCDM_Reader > CDF_Application::ReaderFromFormat ( const TCollection_ExtendedString & aFormat)
virtual

Returns instance of read driver for specified format.

Default implementation uses plugin mechanism to load reader dynamically. For this to work, application resources should define GUID of the plugin as value of [Format].RetrievalPlugin, and "Plugin" resource should define name of plugin library to be loaded as value of [GUID].Location. Plugin library should provide method PLUGINFACTORY returning instance of the reader for the same GUID (see Plugin_Macro.hxx).

In case if reader is not available, will raise Standard_NoSuchObject or other exception if raised by plugin loader.

◆ Retrieve() [1/2]

occ::handle< CDM_Document > CDF_Application::Retrieve ( const TCollection_ExtendedString & aFolder,
const TCollection_ExtendedString & aName,
const bool UseStorageConfiguration = true,
const occ::handle< PCDM_ReaderFilter > & theFilter = occ::handlePCDM_ReaderFilter >(),
const Message_ProgressRange & theRange = Message_ProgressRange() )

This method retrieves a document from the database. If the Document references other documents which have been updated, the latest version of these documents will be used if {UseStorageConfiguration} is true. The content of {aFolder}, {aName} and {aVersion} depends on the Database Manager system. If the DBMS is only based on the OS, {aFolder} is a directory and {aName} is the name of a file. In this case the use of the syntax with {aVersion} has no sense. For example:

occ::handle<CDM_Document> theDocument=myApplication->Retrieve("/home/cascade","box.dsg"); If the DBMS is EUCLID/Design Manager, {aFolder}, {aName} have the form they have in EUCLID/Design Manager. For example:

occ::handle<CDM_Document> theDocument=myApplication->Retrieve("|user|cascade","box");

Since the version is not specified in this syntax, the latest will be used. A link is kept with the database through an instance of CDM_MetaData

◆ Retrieve() [2/2]

occ::handle< CDM_Document > CDF_Application::Retrieve ( const TCollection_ExtendedString & aFolder,
const TCollection_ExtendedString & aName,
const TCollection_ExtendedString & aVersion,
const bool UseStorageConfiguration = true,
const occ::handle< PCDM_ReaderFilter > & theFilter = occ::handlePCDM_ReaderFilter >(),
const Message_ProgressRange & theRange = Message_ProgressRange() )

This method retrieves a document from the database. If the Document references other documents which have been updated, the latest version of these documents will be used if {UseStorageConfiguration} is true. If the DBMS is only based on the OS, this syntax should not be used.

If the DBMS is EUCLID/Design Manager, {aFolder}, {aName} and {aVersion} have the form they have in EUCLID/Design Manager. For example:

occ::handle<CDM_Document> theDocument=myApplication->Retrieve("|user|cascade","box","2"); A link is kept with the database through an instance of CDM_MetaData

◆ SetDefaultFolder()

bool CDF_Application::SetDefaultFolder ( const char16_t *const aFolder)

◆ WriterFromFormat()

virtual occ::handle< PCDM_StorageDriver > CDF_Application::WriterFromFormat ( const TCollection_ExtendedString & aFormat)
virtual

Returns instance of storage driver for specified format.

Default implementation uses plugin mechanism to load driver dynamically. For this to work, application resources should define GUID of the plugin as value of [Format].StoragePlugin, and "Plugin" resource should define name of plugin library to be loaded as value of [GUID].Location. Plugin library should provide method PLUGINFACTORY returning instance of the reader for the same GUID (see Plugin_Macro.hxx).

In case if driver is not available, will raise Standard_NoSuchObject or other exception if raised by plugin loader.

Field Documentation

◆ myDirectory

occ::handle<CDF_Directory> CDF_Application::myDirectory

◆ myMetaDataDriver

occ::handle<CDF_MetaDataDriver> CDF_Application::myMetaDataDriver

◆ myReaders

◆ myRetrievableStatus

PCDM_ReaderStatus CDF_Application::myRetrievableStatus
protected

◆ myWriters


The documentation for this class was generated from the following file: