Location:
MSVAPI.H
Link against: msgs.lib
Link against: msgs_autoshutdown.lib
class CMsvOperationActiveSchedulerWait : public CActive;
Utility class used to wait until an asynchronous messaging operation has completed.
To use the class:
1. Create a new CMsvOperationActiveSchedulerWait object
2. Call the messaging function that returns the asynchronous operation. The operation observer parameter should be the iStatus word of the CMsvOperationActiveSchedulerWait object. This means that the CMsvOperationActiveSchedulerWait object will be signalled when the operation completes.
3. Call the CMsvOperationActiveSchedulerWait object's Start()
function. This sets the object to be active.
These steps cause the program to wait until the operation completes.
CMsvOperationActiveSchedulerWait* waiter=CMsvOperationActiveSchedulerWait::NewLC();
CMsvOperation* op = function_returning_opLC(waiter->iStatus);
waiter->Start();
CleanupStack::PopAndDestroy(2); // op, waiter
CBase
- Base class for all classes to be instantiated on the heap
CActive
- The core class of the active object abstraction
CMsvOperationActiveSchedulerWait
- Utility class used to wait until an asynchronous messaging operation has completed
Defined in CMsvOperationActiveSchedulerWait
:
DoCancel()
, NewLC()
, RunL()
, Start()
, ~CMsvOperationActiveSchedulerWait()
Inherited from CActive
:
Cancel()
,
Deque()
,
EPriorityHigh
,
EPriorityIdle
,
EPriorityLow
,
EPriorityStandard
,
EPriorityUserInput
,
Extension_()
,
IsActive()
,
IsAdded()
,
Priority()
,
RunError()
,
SetActive()
,
SetPriority()
,
TPriority
,
iStatus
Inherited from CBase
:
Delete()
,
operator new()
static IMPORT_C CMsvOperationActiveSchedulerWait *NewLC(TInt aPriority=EPriorityStandard);
Allocates and constructs a new CMsvOperationActiveSchedulerWait object.
The new object is added to the active scheduler and left on the cleanup stack.
|
|
|
IMPORT_C ~CMsvOperationActiveSchedulerWait();
Destructor.
Any active request on the object is cancelled.
IMPORT_C void Start();
Sets the object to be active, and wait until the request is completed.
private: virtual void RunL();
Handles a request completion event.
The function stops the object waiting, and allows the program to resume execution after the Start()
function call.
private: virtual void DoCancel();
Implements cancellation of an outstanding request.