This section explains the initial set up steps to be performed to write a Server MTM. It does not explain the implementation of all Server MTM functionality.
Server
MTM functions usually start an operation to perform a task asynchronously.
The CBaseServerMtm
Server MTM class passes its
own iStatus member to the operation. Note that
there is no base class for server-side operations, as there is on
the client side. Server MTMs therefore implement their own operation
classes derived directly from CActive
. They are,
however, usually designed to return progress in a similar way to a
client-side operation.
CBaseServerMtm
class.
CRegisteredMtmDll
parameter.
CActive
-based classes for performing
the different operations that are required for your Messaging protocol.
// // CTextServerMtm: The Server-side MTM implementation // CTextServerMtm* CTextServerMtm::NewL(CRegisteredMtmDll& aRegisteredMtmDll, CMsvServerEntry* aInitialEntry) // Exported factory function { CleanupStack::PushL(aInitialEntry); CTextServerMtm* self=new (ELeave) CTextServerMtm(aRegisteredMtmDll, aInitialEntry); CleanupStack::Pop(); CleanupStack::PushL(self); self->ConstructL(); CleanupStack::Pop(); return self; } CTextServerMtm::CTextServerMtm(CRegisteredMtmDll& aRegisteredMtmDll, CMsvServerEntry* aInitialEntry) : CBaseServerMtm(aRegisteredMtmDll, aInitialEntry), iCurrentOperation(ETxtOpIdle), iServiceEntryId(aInitialEntry->Entry().Id()) { }