OCC Main Page | ApplicationFramework | Toolkits | Packages | Class Hierarchy | Data Structures | File List | Data Fields | Globals

ApplicationFramework
TKLCAF
TDocStd


TDocStd_Application Class Reference

The abstract root class for all application classes.
They are in charge of:
- Creating documents
- Storing documents and retrieving them
- Initializing document views.
To create a useful OCAF-based application, you
derive a class from Application and implement
the methods below. You will have to redefine the
deferred (virtual) methods Formats,
InitDocument, and Resources, and override others.
The application is a container for a document,
which in its turn is the container of the data
framework made up of labels and attributes.
Besides furnishing a container for documents,
TDocStd_Application provides the following
services for them:
- Creation of new documents
- Activation of documents in sessions of an application
- Storage and retrieval of documents
- Initialization of document views.
Note:
If a client needs detailed information concerning
the events during the Open/Store operation, MessageDriver
inherited from CDM_MessageDriver of the
corresponding application has to be implemented.
If the MessageDriver is not defined all messages
will be (by default) directed to
CDM_NullMessageDriver and will be lost.
.

#include <TDocStd_Application.hxx>

Inheritance diagram for TDocStd_Application:

Inheritance graph
[legend]

Public Member Functions

Standard_EXPORT Standard_Boolean IsDriverLoaded () const
 Check if meta data driver was successfully loaded
by the application constructor
.
virtual Standard_EXPORT Handle_Resource_Manager Resources ()
 create (if not done) a Manager using ResourcesName
method.

virtual Standard_EXPORT Standard_CString ResourcesName ()=0
 Returns the name of the file containing the
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.
.
Standard_EXPORT Standard_Integer NbDocuments () const
 returns the number of documents handled by the current applicative session.

Standard_EXPORT void GetDocument (const Standard_Integer index, Handle(TDocStd_Document)&aDoc) const
 Constructs the new document aDoc.
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 Standard_EXPORT 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.
.
virtual Standard_EXPORT void NewDocument (const TCollection_ExtendedString &format, Handle(TDocStd_Document)&aDoc)
 Constructs the empty new document aDoc.
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 Standard_EXPORT void InitDocument (const Handle(TDocStd_Document)&aDoc) const
 Initialize the document aDoc for the applicative session.
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
=======================
.
Standard_EXPORT void Close (const Handle(TDocStd_Document)&aDoc)
 Close the given document. the document is not any more
handled by the applicative session.
.
Standard_EXPORT Standard_Integer IsInSession (const TCollection_ExtendedString &path) const
 Returns an index for the document found in the
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_EXPORT CDF_RetrievableStatus Open (const TCollection_ExtendedString &path, Handle(TDocStd_Document)&aDoc)
 Retrieves the document aDoc stored under the
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.
.
Standard_EXPORT CDF_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.
.
Standard_EXPORT CDF_StoreStatus Save (const Handle(TDocStd_Document)&aDoc)
 Save aDoc active document.
Exceptions:
Standard_NotImplemented if the document
was not retrieved in the applicative session by using Open.
.
Standard_EXPORT CDF_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.
.
Standard_EXPORT CDF_StoreStatus Save (const Handle(TDocStd_Document)&aDoc, TCollection_ExtendedString &theStatusMessage)
 Save the document overwriting the previous file
.
Standard_EXPORT const Handle (Standard_Type)&DynamicType() const

Protected Member Functions

Standard_EXPORT TDocStd_Application ()
virtual Standard_EXPORT void OnOpenTransaction (const Handle(TDocStd_Document)&theDoc)
 Notification that is fired at each OpenTransaction event.
.
virtual Standard_EXPORT void OnCommitTransaction (const Handle(TDocStd_Document)&theDoc)
 Notification that is fired at each CommitTransaction event.
.
virtual Standard_EXPORT void OnAbortTransaction (const Handle(TDocStd_Document)&theDoc)
 Notification that is fired at each AbortTransaction event.
.

Private Attributes

Handle_Resource_Manager myResources
Standard_Boolean myIsDriverLoaded

Constructor & Destructor Documentation

Standard_EXPORT TDocStd_Application::TDocStd_Application  )  [protected]
 


Member Function Documentation

Standard_EXPORT void TDocStd_Application::Close const Handle(TDocStd_Document)&  aDoc  ) 
 

virtual Standard_EXPORT void TDocStd_Application::Formats TColStd_SequenceOfExtendedString &  Formats  )  [pure virtual]
 

Implements CDF_Application.

Implemented in AppStd_Application, AppStdL_Application, and TObj_Application.

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

Standard_EXPORT const TDocStd_Application::Handle Standard_Type   )  const
 

Reimplemented from CDF_Application.

Reimplemented in AppStd_Application, and AppStdL_Application.

virtual Standard_EXPORT void TDocStd_Application::InitDocument const Handle(TDocStd_Document)&  aDoc  )  const [virtual]
 

Standard_EXPORT Standard_Boolean TDocStd_Application::IsDriverLoaded  )  const
 

Standard_EXPORT Standard_Integer TDocStd_Application::IsInSession const TCollection_ExtendedString &  path  )  const
 

Standard_EXPORT Standard_Integer TDocStd_Application::NbDocuments  )  const
 

virtual Standard_EXPORT void TDocStd_Application::NewDocument const TCollection_ExtendedString &  format,
Handle(TDocStd_Document)&  aDoc
[virtual]
 

virtual Standard_EXPORT void TDocStd_Application::OnAbortTransaction const Handle(TDocStd_Document)&  theDoc  )  [protected, virtual]
 

virtual Standard_EXPORT void TDocStd_Application::OnCommitTransaction const Handle(TDocStd_Document)&  theDoc  )  [protected, virtual]
 

virtual Standard_EXPORT void TDocStd_Application::OnOpenTransaction const Handle(TDocStd_Document)&  theDoc  )  [protected, virtual]
 

Standard_EXPORT CDF_RetrievableStatus TDocStd_Application::Open const TCollection_ExtendedString &  path,
Handle(TDocStd_Document)&  aDoc
 

virtual Standard_EXPORT Handle_Resource_Manager TDocStd_Application::Resources  )  [virtual]
 

Implements CDM_Application.

virtual Standard_EXPORT Standard_CString TDocStd_Application::ResourcesName  )  [pure virtual]
 

Implemented in AppStd_Application, AppStdL_Application, and TObj_Application.

Standard_EXPORT CDF_StoreStatus TDocStd_Application::Save const Handle(TDocStd_Document)&  aDoc,
TCollection_ExtendedString &  theStatusMessage
 

Standard_EXPORT CDF_StoreStatus TDocStd_Application::Save const Handle(TDocStd_Document)&  aDoc  ) 
 

Standard_EXPORT CDF_StoreStatus TDocStd_Application::SaveAs const Handle(TDocStd_Document)&  aDoc,
const TCollection_ExtendedString &  path,
TCollection_ExtendedString &  theStatusMessage
 

Standard_EXPORT CDF_StoreStatus TDocStd_Application::SaveAs const Handle(TDocStd_Document)&  aDoc,
const TCollection_ExtendedString &  path
 


Field Documentation

Standard_Boolean TDocStd_Application::myIsDriverLoaded [private]
 

Handle_Resource_Manager TDocStd_Application::myResources [private]
 


The documentation for this class was generated from the following file:
Generated on Mon Aug 25 14:15:35 2008 for OpenCASCADE by  doxygen 1.4.1