Section Contents
CBase | Abstract: CBase behaviour |
CActive | Abstract: active object: provides facilities to encapsulate an asynchronous service, and to handle its completion using RunL() |
CBaseScriptParser | Abstract: parser implementation. |
cbcp.h
cbcp.lib
This class provides functions to parse a Compact Business Card message. The parser creates an informative message body for the user and generates a vCard in the store associated with the message.
static CBusinessCardParser* NewL(CRegisteredParserDll& aRegisteredParserDll, CMsvServerEntry& aEntry, RFs& aFs);
Use these functions to construct a new CBusinessCardParser descriptor on the heap. Code should be provided to ensure that a single copy of the DLL is loaded and is released when no longer required.
If there is insufficient memory available to create the descriptor, NewL() leaves. See Motivating E32 exception facilities for more information on leave processing.
CRegisteredParserDll& aRegisteredParserDll | A |
CMsvServerEntry& aEntry | A message server entry containing the CBC message. |
RFs& aFs | Handle of a file server session. |
CBusinessCardParser* | The address of the newly created CBusinessCardParser
descriptor. NewL() leaves if there is insufficient memory. |
This code fragment illustrates how an CBusinessCardParser descriptor can be constructed:
Use of NewL():
iRegisteredParserDll = CRegisteredParserDll::NewL(uidType);
RLibrary parserlibrary;
User::LeaveIfError(iRegisteredParserDll->GetLibrary(gFs,parserlibrary));
typedef CBaseScriptParser* (*NewParserL)(CRegisteredParserDll& aRegisteredParserDll, CMsvServerEntry& aEntry, RFs& aFs);
TInt entrypointordinalnumber=1; // The one and only entry point.
TLibraryFunction libFunc=parserlibrary.Lookup(entrypointordinalnumber);
if (libFunc==NULL)
User::Leave(KErrBadLibraryEntryPoint);
NewParserL pFunc=(NewParserL) libFunc;
CBaseScriptParser* parser=NULL;
TInt refcount=iRegisteredParserDll->DllRefCount();
TRAPD(ret,parser=((*pFunc)(*iRegisteredParserDll, *iEntry, gFs)));
if ((ret!=KErrNone) && (iRegisteredParserDll->DllRefCount()==refcount))
iRegisteredParserDll->ReleaseLibrary();
ParseL Parse a Compact Business Card message.
void ParseL(TRequestStatus& aStatus, const TDesC& aSms);
Use this function to parse the Compact Business Card message aSms, stored in the TDesC. The parser creates an informative message body for the user and generates a vCard in the store associated with the message.
TRequestStatus& aStatus | The request status of the active object. |
const TDesC& aSms | An SMS message. |
void |
This code fragment illustrates how the parser is called:
iParser->ParseL(iStatus,iSms);
ProcessL Parse a Compact Business Card message.
void ProcessL(TRequestStatus& aStatus);
This function is not implemented in the current version of the parser. It may be used to implement further actions with the parsed message.
TRequestStatus& aStatus | The request status of the active object. |
void |
This code fragment illustrates how the message process stage of the parser is called:
iParser->ProcessL(iStatus)
This interface currently returns after issuing a User::RequestComplete(iReport, KErrNotSupported).