00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00024 #include "mAsyncWaiter.h"
00025
00029 CMessAsyncWaiter* CMessAsyncWaiter::NewL()
00030 {
00031 CMessAsyncWaiter* self = new(ELeave) CMessAsyncWaiter();
00032 return self;
00033 }
00034
00038 CMessAsyncWaiter::CMessAsyncWaiter() : CActive(EPriorityStandard)
00039 {
00040 CActiveScheduler::Add(this);
00041 }
00042
00043
00044 CMessAsyncWaiter::~CMessAsyncWaiter()
00045 {
00046 Cancel();
00047 }
00048
00053 void CMessAsyncWaiter::StartAndWait()
00054 {
00055 SetActive();
00056 CActiveScheduler::Start();
00057 }
00058
00059
00060 TInt CMessAsyncWaiter::Result() const
00061 {
00062 return iError;
00063 }
00064
00069 void CMessAsyncWaiter::RunL()
00070 {
00071 iError = iStatus.Int();
00072 CActiveScheduler::Stop();
00073 }
00074
00079 void CMessAsyncWaiter::DoCancel()
00080 {
00081 iError = KErrCancel;
00082 CActiveScheduler::Stop();
00083 }
00084