Open CASCADE Technology  6.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions
TDocStd_Application Class Referenceabstract

The abstract root class for all application classes.
They are in charge of:
More...

#include <TDocStd_Application.hxx>

Inheritance diagram for TDocStd_Application:
Inheritance graph
[legend]

Public Member Functions

Standard_Boolean IsDriverLoaded () const
 Check if meta data driver was successfully loaded
by the application constructor
More...
 
virtual Handle_Resource_Manager Resources ()
 create (if not done) a Manager using ResourcesName
method.
More...
 
virtual Standard_CString ResourcesName ()=0
 
  Returns the name of the file containing the <br>

resources of this application.
In a resource file, the application associates the schema name
of the document with the storage and
retrieval plug-ins that are to be loaded for each
document. On retrieval, the application reads the
schema name in the heading of the CSF file and
loads the plug-in indicated in the resource file.
This plug-in instantiates the actual driver for
transient-persistent conversion.
Your application can bring this process into play
by defining a class which inherits
CDF_Application and redefines the function
which returns the appropriate resources file. At
this point, the function Retrieve and the class
CDF_Store can be called. This allows you to
deal with storage and retrieval of - as well as
copying and pasting - documents.
To implement a class like this, several virtual
functions should be redefined. In particular, you
must redefine the abstract function Resources
inherited from the superclass CDM_Application.
More...

 
Standard_Integer NbDocuments () const
 returns the number of documents handled by the current applicative session.
More...
 
void GetDocument (const Standard_Integer index, Handle< TDocStd_Document > &aDoc) const
 
 Constructs the new document aDoc. <br>

aDoc is identified by the index index which is
any integer between 1 and n where n is the
number of documents returned by NbDocument.
Example
Handle(TDocStd_Application)
anApp;
if (!CafTest::Find(A)) return 1;
Handle(TDocStd) aDoc;
Standard_Integer nbdoc = anApp->NbDocuments();
for (Standard_Integer i = 1; i <= nbdoc; i++) {
aApp->GetDocument(i,aDoc);
More...

 
virtual void Formats (TColStd_SequenceOfExtendedString &Formats)=0
 Returns the format name Formats
representing the format supported for
application documents.
This virtual function is to be redefined for each
specific application.
More...
 
virtual void NewDocument (const TCollection_ExtendedString &format, Handle< TDocStd_Document > &aDoc)
 
 Constructs the empty new document aDoc. <br>

This document will have the format format.
If InitDocument is redefined for a specific
application, the new document is handled by the
applicative session.
More...

 
virtual void InitDocument (const Handle< TDocStd_Document > &aDoc) const
 
 Initialize the document aDoc for the applicative session. <br>

This virtual function is called by NewDocument
and is to be redefined for each specific application.
//! Modified flag (different of disk version)
=============
//! to open/save a document
=======================
More...

 
void Close (const Handle< TDocStd_Document > &aDoc)
 Close the given document. the document is not any more
handled by the applicative session.
More...
 
Standard_Integer IsInSession (const TCollection_ExtendedString &path) const
 
  Returns an index for the document found in the <br>

path path in this applicative session.
If the returned value is 0, the document is not
present in the applicative session.
This method can be used for the interactive part
of an application. For instance, on a call to
Open, the document to be opened may already
be in memory. IsInSession checks to see if this
is the case. Open can be made to depend on
the value of the index returned: if IsInSession
returns 0, the document is opened; if it returns
another value, a message is displayed asking the
user if he wants to override the version of the
document in memory.
Example:
Standard_Integer insession = A->IsInSession(aDoc);
if (insession > 0) {
cout << "document " << insession << " is already in session" << endl;
return 0;
}
More...

 
PCDM_ReaderStatus Open (const TCollection_ExtendedString &path, Handle< TDocStd_Document > &aDoc)
 
 Retrieves the document aDoc stored under the <br>

name aName in the directory directory.
In order not to override a version of aDoc which
is already in memory, this method can be made
to depend on the value returned by IsInSession.
More...

 
PCDM_StoreStatus SaveAs (const Handle< TDocStd_Document > &aDoc, const TCollection_ExtendedString &path)
 Save the active document in the file <name> in the
path <path> ; o verwrites the file if it already exists.
More...
 
PCDM_StoreStatus Save (const Handle< TDocStd_Document > &aDoc)
 
 Save aDoc active document. <br>

Exceptions:
Standard_NotImplemented if the document
was not retrieved in the applicative session by using Open.
More...

 
PCDM_StoreStatus SaveAs (const Handle< TDocStd_Document > &aDoc, const TCollection_ExtendedString &path, TCollection_ExtendedString &theStatusMessage)
 Save the active document in the file <name> in the
path <path> . overwrite the file if it
already exist.
More...
 
PCDM_StoreStatus Save (const Handle< TDocStd_Document > &aDoc, TCollection_ExtendedString &theStatusMessage)
 Save the document overwriting the previous file
More...
 
- Public Member Functions inherited from CDF_Application
void Open (const Handle< CDM_Document > &aDocument)
 puts the document in the current session directory
and calls the virtual method Activate on it.
More...
 
CDM_CanCloseStatus CanClose (const Handle< CDM_Document > &aDocument)
 
void Close (const Handle< CDM_Document > &aDocument)
 removes the document of the current session directory
and closes the document;
More...
 
Handle_CDM_Document Retrieve (const TCollection_ExtendedString &aFolder, const TCollection_ExtendedString &aName, const Standard_Boolean UseStorageConfiguration=Standard_True)
 
 This method retrieves a document from the database. <br>
     If the Document references other documents which have <br>
     been updated, the latest version of these documents will <br>
     be used if {UseStorageConfiguration} is Standard_True. <br>
      The content of {aFolder}, {aName} and {aVersion} depends on <br>
      the Database Manager system. If the DBMS is only based on <br>
      the OS, {aFolder} is a directory and {aName} is the name of a <br>
      file. In this case the use of the syntax with {aVersion} <br>
      has no sense. For example: <br>


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:

Handle(CDM_Document) theDocument=myApplication->Retrieve("|user|cascade","box");

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

 
Handle_CDM_Document Retrieve (const TCollection_ExtendedString &aFolder, const TCollection_ExtendedString &aName, const TCollection_ExtendedString &aVersion, const Standard_Boolean UseStorageConfiguration=Standard_True)
 
  This method retrieves  a  document from the database. <br>
     If the  Document references other documents which have <br>
     been  updated, the  latest version of  these documents <br>
      will    be   used  if   {UseStorageConfiguration}  is <br>
     Standard_True.  --  If the DBMS is  only  based on the <br>
      OS, this syntax  should not be used. <br>


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

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

 
PCDM_ReaderStatus CanRetrieve (const TCollection_ExtendedString &aFolder, const TCollection_ExtendedString &aName)
 
PCDM_ReaderStatus CanRetrieve (const TCollection_ExtendedString &aFolder, const TCollection_ExtendedString &aName, const TCollection_ExtendedString &aVersion)
 
PCDM_ReaderStatus GetRetrieveStatus () const
 Checks status after Retrieve
More...
 
Standard_Boolean FindReader (const TCollection_ExtendedString &aFileName)
 
Handle_PCDM_Reader Reader (const TCollection_ExtendedString &aFileName)
 
Standard_Boolean FindReaderFromFormat (const TCollection_ExtendedString &aFormat)
 
Handle_PCDM_Reader ReaderFromFormat (const TCollection_ExtendedString &aFormat)
 
Standard_Boolean 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;
More...
 
Standard_ExtString DefaultFolder ()
 
Standard_Boolean SetDefaultFolder (const Standard_ExtString aFolder)
 
Standard_ExtString DefaultExtension ()
 
- Public Member Functions inherited from CDM_Application
virtual Handle_CDM_MessageDriver MessageDriver ()
 By default returns a NullMessageDriver;
More...
 
virtual void BeginOfUpdate (const Handle< CDM_Document > &aDocument)
 this method is called before the update of a document.
By default, writes in MessageDriver().
More...
 
virtual void EndOfUpdate (const Handle< CDM_Document > &aDocument, const Standard_Boolean Status, const TCollection_ExtendedString &ErrorString)
 this method is called affter the update of a document.
By default, writes in MessageDriver().
More...
 
void Write (const Standard_ExtString aString)
 writes the string in the application MessagerDriver.
More...
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor. More...
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing. More...
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter. More...
 
virtual ~Standard_Transient ()
 Destructor must be virtual. More...
 
virtual void Delete () const
 Memory deallocator for transient classes. More...
 
virtual void ShallowDump (Standard_OStream &) const
 
virtual const
Handle_Standard_Type & 
DynamicType () const
 Returns a type information object about this object. More...
 
Standard_Boolean IsInstance (const Handle_Standard_Type &theType) const
 Returns a true value if this is an instance of Type. More...
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName. More...
 
Standard_Boolean IsKind (const 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. More...
 
Standard_Boolean IsKind (const Standard_CString 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. More...
 
virtual Handle_Standard_Transient This () const
 Returns a Handle which references this object. Must never be called to objects created in stack. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 

Protected Member Functions

 TDocStd_Application ()
 
virtual void OnOpenTransaction (const Handle< TDocStd_Document > &theDoc)
 Notification that is fired at each OpenTransaction event.
More...
 
virtual void OnCommitTransaction (const Handle< TDocStd_Document > &theDoc)
 Notification that is fired at each CommitTransaction event.
More...
 
virtual void OnAbortTransaction (const Handle< TDocStd_Document > &theDoc)
 Notification that is fired at each AbortTransaction event.
More...
 
- Protected Member Functions inherited from CDF_Application
 CDF_Application ()
 
- Protected Member Functions inherited from CDM_Application
void SetDocumentVersion (const Handle< CDM_Document > &aDocument, const Handle< CDM_MetaData > &aMetaData) const
 
void SetReferenceCounter (const Handle< CDM_Document > &aDocument, const Standard_Integer aReferenceCounter)
 

Additional Inherited Members

- Static Public Member Functions inherited from CDF_Application
static Handle_CDF_Application Load (const Standard_GUID &aGUID)
 
 plugs an application. <br>

Open is used
More...

 
- Protected Attributes inherited from CDF_Application
PCDM_ReaderStatus myRetrievableStatus
 

Detailed Description

The abstract root class for all application classes.
They are in charge of:

Constructor & Destructor Documentation

TDocStd_Application::TDocStd_Application ( )
protected

Member Function Documentation

void TDocStd_Application::Close ( const Handle< TDocStd_Document > &  aDoc)

Close the given document. the document is not any more
handled by the applicative session.

virtual void TDocStd_Application::Formats ( TColStd_SequenceOfExtendedString Formats)
pure virtual

Returns the format name Formats
representing the format supported for
application documents.
This virtual function is to be redefined for each
specific application.

Implements CDF_Application.

Implemented in TObj_Application, AppStdL_Application, AppStd_Application, and XCAFApp_Application.

void TDocStd_Application::GetDocument ( const Standard_Integer  index,
Handle< TDocStd_Document > &  aDoc 
) const

 Constructs the new document aDoc. <br>

aDoc is identified by the index index which is
any integer between 1 and n where n is the
number of documents returned by NbDocument.
Example
Handle(TDocStd_Application)
anApp;
if (!CafTest::Find(A)) return 1;
Handle(TDocStd) aDoc;
Standard_Integer nbdoc = anApp->NbDocuments();
for (Standard_Integer i = 1; i <= nbdoc; i++) {
aApp->GetDocument(i,aDoc);

virtual void TDocStd_Application::InitDocument ( const Handle< TDocStd_Document > &  aDoc) const
virtual

 Initialize the document aDoc for the applicative session. <br>

This virtual function is called by NewDocument
and is to be redefined for each specific application.
//! Modified flag (different of disk version)
=============
//! to open/save a document
=======================

Reimplemented in XCAFApp_Application.

Standard_Boolean TDocStd_Application::IsDriverLoaded ( ) const

Check if meta data driver was successfully loaded
by the application constructor

Standard_Integer TDocStd_Application::IsInSession ( const TCollection_ExtendedString path) const

  Returns an index for the document found in the <br>

path path in this applicative session.
If the returned value is 0, the document is not
present in the applicative session.
This method can be used for the interactive part
of an application. For instance, on a call to
Open, the document to be opened may already
be in memory. IsInSession checks to see if this
is the case. Open can be made to depend on
the value of the index returned: if IsInSession
returns 0, the document is opened; if it returns
another value, a message is displayed asking the
user if he wants to override the version of the
document in memory.
Example:
Standard_Integer insession = A->IsInSession(aDoc);
if (insession > 0) {
cout << "document " << insession << " is already in session" << endl;
return 0;
}

Standard_Integer TDocStd_Application::NbDocuments ( ) const

returns the number of documents handled by the current applicative session.

virtual void TDocStd_Application::NewDocument ( const TCollection_ExtendedString format,
Handle< TDocStd_Document > &  aDoc 
)
virtual

 Constructs the empty new document aDoc. <br>

This document will have the format format.
If InitDocument is redefined for a specific
application, the new document is handled by the
applicative session.

virtual void TDocStd_Application::OnAbortTransaction ( const Handle< TDocStd_Document > &  theDoc)
protectedvirtual

Notification that is fired at each AbortTransaction event.

virtual void TDocStd_Application::OnCommitTransaction ( const Handle< TDocStd_Document > &  theDoc)
protectedvirtual

Notification that is fired at each CommitTransaction event.

virtual void TDocStd_Application::OnOpenTransaction ( const Handle< TDocStd_Document > &  theDoc)
protectedvirtual

Notification that is fired at each OpenTransaction event.

PCDM_ReaderStatus TDocStd_Application::Open ( const TCollection_ExtendedString path,
Handle< TDocStd_Document > &  aDoc 
)

 Retrieves the document aDoc stored under the <br>

name aName in the directory directory.
In order not to override a version of aDoc which
is already in memory, this method can be made
to depend on the value returned by IsInSession.

virtual Handle_Resource_Manager TDocStd_Application::Resources ( )
virtual

create (if not done) a Manager using ResourcesName
method.

Implements CDM_Application.

virtual Standard_CString TDocStd_Application::ResourcesName ( )
pure virtual

  Returns the name of the file containing the <br>

resources of this application.
In a resource file, the application associates the schema name
of the document with the storage and
retrieval plug-ins that are to be loaded for each
document. On retrieval, the application reads the
schema name in the heading of the CSF file and
loads the plug-in indicated in the resource file.
This plug-in instantiates the actual driver for
transient-persistent conversion.
Your application can bring this process into play
by defining a class which inherits
CDF_Application and redefines the function
which returns the appropriate resources file. At
this point, the function Retrieve and the class
CDF_Store can be called. This allows you to
deal with storage and retrieval of - as well as
copying and pasting - documents.
To implement a class like this, several virtual
functions should be redefined. In particular, you
must redefine the abstract function Resources
inherited from the superclass CDM_Application.

Implemented in TObj_Application, AppStdL_Application, AppStd_Application, and XCAFApp_Application.

PCDM_StoreStatus TDocStd_Application::Save ( const Handle< TDocStd_Document > &  aDoc)

 Save aDoc active document. <br>

Exceptions:
Standard_NotImplemented if the document
was not retrieved in the applicative session by using Open.

PCDM_StoreStatus TDocStd_Application::Save ( const Handle< TDocStd_Document > &  aDoc,
TCollection_ExtendedString theStatusMessage 
)

Save the document overwriting the previous file

PCDM_StoreStatus TDocStd_Application::SaveAs ( const Handle< TDocStd_Document > &  aDoc,
const TCollection_ExtendedString path 
)

Save the active document in the file <name> in the
path <path> ; o verwrites the file if it already exists.

PCDM_StoreStatus TDocStd_Application::SaveAs ( const Handle< TDocStd_Document > &  aDoc,
const TCollection_ExtendedString path,
TCollection_ExtendedString theStatusMessage 
)

Save the active document in the file <name> in the
path <path> . overwrite the file if it
already exist.


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