asynchandler.cpp

来自「hercules v9 symbian os application devel」· C++ 代码 · 共 59 行

CPP
59
字号
// asynchandler.cpp
// Skeleton active object, for asynchronous server requests

#include <e32base.h>
#include "server.h"

CAsyncHandler* CAsyncHandler::NewL()
	{
	CAsyncHandler* me = CAsyncHandler::NewLC();
	CleanupStack::Pop(me);
	return (me);
	}

CAsyncHandler* CAsyncHandler::NewLC()
	{
	CAsyncHandler* me = new (ELeave) CAsyncHandler();
	CleanupStack::PushL(me);
	me->ConstructL();
	return (me);
	}

CAsyncHandler::~CAsyncHandler()
	{
	Cancel();
	iTimer.Close();	
	}

CAsyncHandler::CAsyncHandler()
: CActive(EPriorityStandard) 
	{ 
	CActiveScheduler::Add(this); 
	}

void CAsyncHandler::ConstructL()
	{
	User::LeaveIfError(iTimer.CreateLocal());
	}

void CAsyncHandler::ServiceAsyncRequest(const RMessage2& aMessage)
	{// Only allow one request to be submitted at a time
	_LIT(KOutstandingRequestPanic, "InUse");
	__ASSERT_ALWAYS(!IsActive(), User::Panic(KOutstandingRequestPanic, KErrInUse));
	iMessage = aMessage;
	iTimer.After(iStatus, 2000000); // Set the RTimer to expire in 2 seconds
	SetActive(); // Mark this object active	
	}

void CAsyncHandler::DoCancel()
	{
	iTimer.Cancel();
	iMessage.Complete(KErrCancel);
	}

void CAsyncHandler::RunL()
	{
	iMessage.Complete(iStatus.Int());
	}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?