Location:
apparc.h
Link against:
apparc.lib
CApaProcess
Supported from 5.0
Maintains a list of documents and all of the potentially shared resources used by documents.
This includes the application DLLs. The class also supplies utility functions that provide the basic structure for persisted document files.
The class deals with the loading of application DLLs and manages the creation and destruction of application (CApaApplication
) objects and document (CApaDocument
) objects.
The class is derived from by the UI framework and further derivation by the UI application is not necessary unless it needs to add extra utility functions for the use of applications.
|
Defined in CApaProcess
:
AddNewDocumentL()
, CApaProcess()
, ConstructL()
, DestroyDocument()
, FsSession()
, MainDocFileName()
, MainDocument()
, NewL()
, OpenNewDocumentL()
, ReadAppIdentifierL()
, ReadRootStreamLC()
, ResetL()
, SetMainDocFileName()
, SetMainDocument()
, TempFilePath()
, WriteAppIdentifierL()
, WriteRootStreamL()
, ~CApaProcess()
Inherited from CBase
:
operator new()
static CApaProcess* NewL(const RFs& aFs,CApaAppFinder& aAppFinder);
Creates and returns a pointer to a new application process.
This function is not used by UI applications.
|
|
protected: CApaProcess(const RFs& aFs,CApaAppFinder& aAppFinder);
Constructs the application process object with the specified file session handle and application finder.
Derived classes must define and implement a constructor through which both the file session handle and application finder object can be specified. A typical implementation calls this constructor through a constructor initialization list.
This constructor is used by the UI framework.
|
protected: void ConstructL();
Completes construction of the application process object.
Implementers of derived classes must call this function as part of the second stage construction of an object. Typically, derived classes implement their own NewL()
function and call ConstructL()
as part of that implementation.
void ResetL();
Resets the the application process to its initial state.
Specifically, it saves the main document, deletes the main and all embedded documents from memory, resets the main document filename and deletes all applications except the main application.
The function can leave if saving the main document fails.
~CApaProcess();
Frees resources prior to destruction.
Documents must be saved before the application process is deleted, otherwise data may be lost.
In debug mode, the destructor raises an APPARC 6 panic if documents still exist, and an APPARC 5 panic if applications still exist.
CApaDocument* AddNewDocumentL(const TDesC& aDllFileName,TUid aDllUid=KNullUid);
Creates and adds a new document of the specified application type.
The document may be a main document or an embedded document.
The function creates a new application object, a CApaApplication
type, if this is the first document of that type to be added.
The search strategy for the application DLL depends on the the specified file name and UID. If the full path name of a DLL is specified, then that DLL is located and loaded. If the full path name is not specified and a UID is specified, then a DLL matching that UID is located and loaded. If the full path name is not specified and the UID is null, then a DLL with matching filename is located and loaded.
The function leaves with KErrNotFound
if no suitable application DLL can be found.
Any document created with this function must be destroyed using DestroyDocument()
.
|
|
CApaDocument* OpenNewDocumentL(CFileStore*& aStore,CStreamDictionary*& aStreamDic,const TDesC& aDocFullFileName,TUint aFileMode);
Opens the specified file and restores the content as a document.
The created document can be merged into another document or embedded in another document.
Any document created with this function must be destroyed using DestroyDocument()
.
|
|
void DestroyDocument(CApaDocument* aDoc);
Destroys the specified document.
All references to the document are removed, and associated resources are freed. Specifically, the function deletes any associated application and unloads the application DLL, provided that no other documents of that application type are still open.
All document objects created through CApaProcess
must be deleted using this function.
|
CApaDocument* MainDocument() const;
Returns a pointer to the main document.
|
void SetMainDocument(CApaDocument* aDocument);
Sets the main document.
|
TPtrC MainDocFileName() const;
Returns the filename of the main document.
|
void SetMainDocFileName(const TDesC& aMainDocFileName);
Sets the filename of the main document.
|
static CStreamDictionary* ReadRootStreamLC(RFs& aFs,CFileStore*& aStore,const TDesC& aDocFullFileName,TUint aFileMode);
Reads the stream dictionary contained as the root stream in the specified document file.
The function constructs, and returns a pointer to the stream dictionary object and puts the pointer to the stream dictionary object onto the cleanup stack. It also returns a pointer to the created file store object through an argument reference.
The file must be a valid document file, as indicated by the UID value(s), otherwise the function leaves with KErrCorrupt
.
|
|
static void WriteRootStreamL(CPersistentStore& aStore,CStreamDictionary& aStreamDic,const CApaApplication& aApp);
static void WriteRootStreamL(CPersistentStore& aStore,CStreamDictionary& aStreamDic,const TApaAppIdentifier& aAppId);
Writes the application identifier stream followed by the stream dictionary to the store and makes the stream dictionary the root stream of the store.
Typically, the function is called by the application when it implements a file create or file save type operation. It is called after all model and UI data has been persisted. The IDs of the streams containing the model and UI data should have been lodged in the stream dictionary.
In effect, the function finishes off the file save or file create type operation, leaving the file containing the store in a valid state with the standard interface.
|
static TApaAppIdentifier ReadAppIdentifierL(const CStreamStore& aStore,const CStreamDictionary& aStreamDic);
Reads the application identifier from its stream in the specified store and returns it.
The location of the stream is found in the specified stream dictionary.
|
|
static void WriteAppIdentifierL(CStreamStore& aStore,CStreamDictionary& aStreamDic,const TApaAppIdentifier& aAppId);
Writes the application identifier to a new stream in the specified store and records the location of this stream in the specified stream dictionary.
|
RFs& FsSession() const;
Returns a handle to the file server session used by this application process.
|
TPtrC TempFilePath() const;
Returns the path of the directory in which temporary files should be created.
There is only one path for temporary files in the whole system, and this is just a convenient accessor to return its location.
|