diff -r 000000000000 -r 4e1aa6a622a0 accessoryservices/pluggeddisplay/pluggeddisplayasy/src/pdasycmdhandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/accessoryservices/pluggeddisplay/pluggeddisplayasy/src/pdasycmdhandler.cpp Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,257 @@ +/* + * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * All rights reserved. + * This component and the accompanying materials are made available + * under the terms of "Eclipse Public License v1.0" + * which accompanies this distribution, and is available + * at the URL "http://www.eclipse.org/legal/epl-v10.html". + * + * Initial Contributors: + * Nokia Corporation - initial contribution. + * + * Contributors: + * + * Description: + * CPDAsyCmdHandler class implementation. + * + */ + +// SYSTEM INCLUDES + +// USER INCLUDES +#include "pdasycmdhandler.h" +#include "pdengine.h" +#include "pdasymainservice.h" +#include "trace.h" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// C++ constructor. +// --------------------------------------------------------------------------- +// +CPDAsyCmdHandler::CPDAsyCmdHandler() + { + FUNC_LOG; + } + +// --------------------------------------------------------------------------- +// Symbian 2nd phase constructor. +// --------------------------------------------------------------------------- +// +void CPDAsyCmdHandler::ConstructL( MPDAsyCmdHandler* aCmdHandler, + CASYMainServiceBase* aMainServiceBase ) + { + FUNC_LOG; + + // Resolve command handler pointer + iCmdHandler = aCmdHandler; + if( !aCmdHandler ) + { + iCmdHandler = this; + } + + // Resolve main service pointer + iMainService = aMainServiceBase; + if( !aMainServiceBase ) + { + iMainService = ASYMainServiceBase(); + } + } + +// --------------------------------------------------------------------------- +// Symbian two phased constructor. +// --------------------------------------------------------------------------- +// +CPDAsyCmdHandler* CPDAsyCmdHandler::NewL() + { + FUNC_LOG; + + CPDAsyCmdHandler* self = CPDAsyCmdHandler::NewLC(); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// Symbian two phased constructor. +// Leaves pointer in the cleanup stack. +// --------------------------------------------------------------------------- +// +CPDAsyCmdHandler* CPDAsyCmdHandler::NewLC() + { + FUNC_LOG; + + CPDAsyCmdHandler* self = new ( ELeave ) CPDAsyCmdHandler; + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + +// --------------------------------------------------------------------------- +// Symbian two phased constructor for testing purposes. +// Leaves pointer in the cleanup stack. +// --------------------------------------------------------------------------- +// +CPDAsyCmdHandler* CPDAsyCmdHandler::CreateTestInstanceL( + MPDAsyCmdHandler* aCmdHandler, + CASYMainServiceBase* aMainServiceBase ) + { + FUNC_LOG; + + CPDAsyCmdHandler* self = new ( ELeave ) CPDAsyCmdHandler; + CleanupStack::PushL( self ); + self->ConstructL( aCmdHandler, aMainServiceBase ); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// C++ destructor. +// --------------------------------------------------------------------------- +// +CPDAsyCmdHandler::~CPDAsyCmdHandler() + { + FUNC_LOG; + } + +// --------------------------------------------------------------------------- +// CPDAsyCmdHandler::ProcessCommandL +// --------------------------------------------------------------------------- +// +void CPDAsyCmdHandler::ProcessCommandL( const TProcessCmdId aCommand, + const TASYCmdParams& aCmdParams ) + { + FUNC_LOG; + + INFO_1( "Received command: Command ID = [%d]", aCommand ); + + // Get main service + CPDAsyMainService* mainService = MainService(); + if( mainService ) + { + // Get the plugged display engine + CPDEngine& engine = mainService->Engine(); + engine.ProcessCommandL( aCommand, aCmdParams, *iCmdHandler ); + INFO_1( "Processed command: Command ID = [%d]", aCommand ); + } + else + { + // Main service not ready + User::Leave( KErrNotReady ); + } + } + +// --------------------------------------------------------------------------- +// CPDAsyCmdHandler::ProcessResponse +// --------------------------------------------------------------------------- +// +void CPDAsyCmdHandler::ProcessResponse( + const TAccValueTypeTBool aCmdResponse, + TInt aErrCode ) + { + FUNC_LOG; + if ( iCmdHandler == this ) + { + TRAP_IGNORE( ProcessResponseL( aCmdResponse, aErrCode ) ); + } + else + { + iCmdHandler->ProcessResponse( aCmdResponse, aErrCode ); + } + } + +// --------------------------------------------------------------------------- +// CPDAsyCmdHandler::ProcessResponse +// --------------------------------------------------------------------------- +// +void CPDAsyCmdHandler::ProcessResponse( const TAccValueTypeTInt aCmdResponse, + TInt aErrCode ) + { + FUNC_LOG; + + if ( iCmdHandler == this ) + { + TRAP_IGNORE( ProcessResponseL( aCmdResponse, aErrCode ) ); + } + else + { + iCmdHandler->ProcessResponse( aCmdResponse, aErrCode ); + } + } + +// --------------------------------------------------------------------------- +// CPDAsyCmdHandler::ProcessResponse +// --------------------------------------------------------------------------- +// +void CPDAsyCmdHandler::ProcessResponse( const TDesC8& aCmdResponse, + TInt aErrCode ) + { + FUNC_LOG; + + + if ( iCmdHandler == this ) + { + TRAP_IGNORE( ProcessResponseL( aCmdResponse, aErrCode ) ); + } + else + { + iCmdHandler->ProcessResponse( aCmdResponse, aErrCode ); + } + } + +// --------------------------------------------------------------------------- +// CPDAsyCmdHandler::ProcessResponse +// --------------------------------------------------------------------------- +// +void CPDAsyCmdHandler::ProcessResponse( const CAccPolObjectCon& aObjectCon, + TInt aErrCode ) + { + FUNC_LOG; + + if ( iCmdHandler == this ) + { + TRAP_IGNORE( ProcessResponseL( aObjectCon, aErrCode ) ); + } + else + { + iCmdHandler->ProcessResponse( aObjectCon, aErrCode ); + } + } + +// --------------------------------------------------------------------------- +// CPDAsyCmdHandler::ObjectConDataFromProxy +// --------------------------------------------------------------------------- +// +void CPDAsyCmdHandler::ObjectConDataFromProxy( + CAccPolObjectCon& aObjectCon ) const + { + FUNC_LOG; + + if ( iCmdHandler == this ) + { + TRAP_IGNORE( ObjectConDataFromProxyL( aObjectCon ) ); + } + else + { + iCmdHandler->ObjectConDataFromProxy( aObjectCon ); + } + } + +//------------------------------------------------------------------------------ +// CPDAsyCmdHandler::MainService +//------------------------------------------------------------------------------ +// +CPDAsyMainService* CPDAsyCmdHandler::MainService() + { + FUNC_LOG; + + // Double check that the pointer exists + if( !iMainService ) + { + iMainService = ASYMainServiceBase(); + } + + return static_cast( iMainService ); + } + +// End of file