⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taskmanagerenginereader.cpp

📁 symbian s60 end to end socket程序源码 基于第二版何第三版的sdk
💻 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 + -