📄 taskmanagerenginereader.cpp
字号:
/*
* ============================================================================
* Name : CTaskManagerEngineReader from TaskManagerEngineReader.cpp
* Part of : TaskManager
* Created : 08/31/2005 by Forum Nokia
* Version : 1.0
* Copyright: Nokia Corporation
* ============================================================================
*/
#include "TaskManager.pan"
#include "TaskManagerEngineReader.h"
#include <securesocket.h>
// ================= MEMBER FUNCTIONS =======================
// Constructor
CTaskManagerEngineReader::CTaskManagerEngineReader( MEngineNotifier& aNotifier )
: CActive( EPriorityStandard ), iSocket( NULL ), iNotifier( aNotifier )
{
}
// Destructor
CTaskManagerEngineReader::~CTaskManagerEngineReader()
{
Cancel();
}
// ----------------------------------------------------
// CTaskManagerEngineReader::ConstructL()
// Second-phase constructor
// ----------------------------------------------------
//
void CTaskManagerEngineReader::ConstructL()
{
CActiveScheduler::Add( this );
}
// ----------------------------------------------------
// CTaskManagerEngineReader::NewL()
// Two-phased construction.
// ----------------------------------------------------
//
CTaskManagerEngineReader* CTaskManagerEngineReader::NewL( MEngineNotifier& aNotifier )
{
CTaskManagerEngineReader* self = CTaskManagerEngineReader::NewLC( aNotifier );
CleanupStack::Pop( self );
return self;
}
// ----------------------------------------------------
// CTaskManagerEngineReader::NewLC()
// Two-phased construction.
// ----------------------------------------------------
//
CTaskManagerEngineReader* CTaskManagerEngineReader::NewLC( MEngineNotifier& aNotifier )
{
CTaskManagerEngineReader* self = new (ELeave) CTaskManagerEngineReader( aNotifier );
CleanupStack::PushL( self );
self->ConstructL();
return self;
}
// ----------------------------------------------------
// CTaskManagerEngineReader::Start()
// Initiates the reader.
// ----------------------------------------------------
//
void CTaskManagerEngineReader::Start()
{
// Initiate a new read from socket into iBuffer
if (!IsActive())
{
IssueRead();
}
}
// ----------------------------------------------------
// CTaskManagerEngineReader::DoCancel()
// Cancels an outstanding request.
// ----------------------------------------------------
//
void CTaskManagerEngineReader::DoCancel()
{
iSocket->CancelRecv();
}
// ----------------------------------------------------
// CTaskManagerEngineReader::RunL()
// Handles an active object抯 request completion event.
// ----------------------------------------------------
//
void CTaskManagerEngineReader::RunL()
{
switch( iStatus.Int() )
{
case KErrNone:
{
// Something was read from socket. Pass it to upper levels
if( iNotifier.PackageReceivedL( iBuffer ) )
{
IssueRead(); // Immediately start another read
}
break;
}
default:
{
Panic( ETaskManagerInvalidState );
break;
}
}
}
// ----------------------------------------------------
// CTaskManagerEngineReader::IssueRead()
// Initiate a single new read from socket.
// ----------------------------------------------------
//
void CTaskManagerEngineReader::IssueRead()
{
iSocket->RecvOneOrMore(iBuffer, iStatus, iDummyLength);
SetActive();
}
// ----------------------------------------------------
// CTaskManagerEngineReader::SetSecureSocket()
// Sets a new socket from which to read.
// ----------------------------------------------------
//
void CTaskManagerEngineReader::SetSecureSocket( CSecureSocket* aSocket )
{
iSocket = aSocket;
}
// End of file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -