diff -r 000000000000 -r 3da2a79470a7 testexecmgmt/ucc/Source/facontroller/CSvcFacontroller.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testexecmgmt/ucc/Source/facontroller/CSvcFacontroller.cpp Mon Mar 08 15:04:18 2010 +0800 @@ -0,0 +1,267 @@ +/* +* Copyright (c) 2005-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: +* This file was autogenerated by rpcgen, but should be modified by the developer. +* Make sure you don't use the -component_mod flag in future or this file will be overwritten. +* Mon Oct 06 12:02:04 2003 +* System Includes +* +*/ + + + + + +#include + + +/**************************************************************************************** + * + * Local Includes + * + ***************************************************************************************/ +#include "CSvcFacontroller.h" +#include "facontroller.h" +#include "standard_service_manager.h" + + +/**************************************************************************************** + * + * File-scope variables + * + ***************************************************************************************/ +static TStartupInfo iStartupInfo; +static CIntegerAllocator *iIntegerAllocator; +static CComponentManager *iComponentManager; + + +/**************************************************************************************** + * + * Implementation + * + ***************************************************************************************/ + + +/**************************************************************************************** + * + * PUBLIC: GetInstanceKeyFromArgs + * + ***************************************************************************************/ +int CSvcFacontroller::GetInstanceKeyFromArgs( int aMethod, void *aArgs ) +{ + int rv; + int *integer_ik; + TFaTunnelID *tunnel_ik; + TOptionDesc *option_ik; + TTimeoutRequest *timeout_ik; + TStartAgentRequest *startup_ik; + TGetTunnelRequest *get_tunnel_req_ik; + + switch( aMethod ) { + + // Methods with a single integer argument that is the key + case DSTR_REMOVEAGENT: + case STOPMOBILEAGENT: + case GETMOBILEAGENTSTATUS: + case GETSTATUS: + case LISTTUNNELS: + integer_ik = (int*)aArgs; + rv = *integer_ik; + break; + + // Methods with TOptionDesc + case SETSINGLEOPTION: + case REMOVESINGLEOPTION: + case ADDLISTOPTION: + case REMOVELISTOPTION: + option_ik = (TOptionDesc*)aArgs; + rv = option_ik->iAgentID; + break; + + // TStartAgentRequest + case STARTMOBILEAGENT: + startup_ik = (TStartAgentRequest*)aArgs; + rv = startup_ik->iAgentID; + break; + + // Tunnel ID + case DESTROYTUNNELID: + tunnel_ik = (TFaTunnelID*)aArgs; + rv = tunnel_ik->iAgentID; + break; + + // Timeout + case SETTIMEOUT: + timeout_ik = (TTimeoutRequest*)aArgs; + rv = timeout_ik->iAgentID; + break; + + // TGetTunnelRequest + case GETTUNNELINFO: + get_tunnel_req_ik = (TGetTunnelRequest*)aArgs; + rv = get_tunnel_req_ik->iAgentID; + break; + + // error + default: + rv = ERR_INVALID_METHOD; + break; + } + return rv; +} + + +/**************************************************************************************** + * + * PUBLIC: SetError + * + ***************************************************************************************/ +int CSvcFacontroller::SetError( int aMethod, void *aArgs, int aError ) +{ + int rv = ERR_NONE; + TResult *result_rv; + TComponentList *result_cl; + TFaStatusInfo *result_fs; + TFaTunnelList *result_tl; + TFaTunnelInfo *result_ti; + + switch( aMethod ) { + + // TResult + case CSTR_CREATEAGENT: + case STARTMOBILEAGENT: + case STOPMOBILEAGENT: + case SETSINGLEOPTION: + case REMOVESINGLEOPTION: + case ADDLISTOPTION: + case REMOVELISTOPTION: + case DESTROYTUNNELID: + SET_ERROR_CODE( TResult, iServiceResult, result_rv ); + break; + + // TComponent + case LIST_DEVICES: + SET_LIST_ERROR_CODE( TComponentList, result_cl ); + break; + + // TFaStatusInfo + case GETSTATUS: + SET_ERROR_CODE( TFaStatusInfo, iCallResult.iServiceResult, result_fs ); + break; + + // TFaTunnelList + case LISTTUNNELS: + SET_LIST_ERROR_CODE( TFaTunnelList, result_tl ); + break; + + // TFaTunnelInfo + case GETTUNNELINFO: + SET_ERROR_CODE( TFaTunnelInfo, iCallResult.iServiceResult, result_ti ); + break; + + // error + default: + rv = ERR_INVALID_METHOD; + break; + } + + // done + return rv; +} + + +/**************************************************************************************** + * + * PUBLIC: GetError - Currently this methods will only ever be caleld for CSTR_CREATEAGENT + * + ***************************************************************************************/ +int CSvcFacontroller::GetError( int aMethod, void *aArgs ) +{ + TResult *result; + + // check assumption + assert( aMethod == CSTR_CREATEAGENT ); + + // return error code + result = (TResult*)aArgs; + return result->iServiceResult; +} + + +/**************************************************************************************** + * + * PUBLIC: StartRPCService + * + ***************************************************************************************/ +int CSvcFacontroller::StartRPCService( CComponentManager *aComponentManager, void *aArg ) +{ + int err; + + // save the passed args + iStartupInfo = *((TStartupInfo*)aArg); + + // create the component manager + assert( iComponentManager == NULL ); + iComponentManager = aComponentManager; + + // setup the integer allocator + iIntegerAllocator = new CIntegerAllocator(); + assert( iIntegerAllocator != NULL ); + err = iIntegerAllocator->AddToIntegerPool( iStartupInfo.iStartHostAddressRange, iStartupInfo.iStopHostAddressRange ); + if( err == -1 ) { + delete iIntegerAllocator; + iIntegerAllocator = NULL; + return ERR_INTEGER_ALLOCATOR_SETUP_ERROR; + } + return ERR_NONE; +} + + +/**************************************************************************************** + * + * PUBLIC: StopRPCService + * + ***************************************************************************************/ +int CSvcFacontroller::StopRPCService() +{ + // cleanup the integer allocator + delete iIntegerAllocator; + iIntegerAllocator = NULL; + + // cleanup the component manager (stubs do the deletion) + iComponentManager = NULL; + return ERR_NONE; +} + + +/**************************************************************************************** + * + * PUBLIC: GetStartupInfo + * + ***************************************************************************************/ +TStartupInfo CSvcFacontroller::GetStartupInfo() +{ + return iStartupInfo; +} + + +/**************************************************************************************** + * + * PUBLIC: GetIntegerAllocator + * + ***************************************************************************************/ +CIntegerAllocator *CSvcFacontroller::GetIntegerAllocator() +{ + return iIntegerAllocator; +}