testexecmgmt/ucc/Source/facontroller/CSvcFacontroller.cpp
changeset 0 3da2a79470a7
equal deleted inserted replaced
-1:000000000000 0:3da2a79470a7
       
     1 /*
       
     2 * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:    
       
    15 * This file was autogenerated by rpcgen, but should be modified by the developer.
       
    16 * Make sure you don't use the -component_mod flag in future or this file will be overwritten.
       
    17 * Mon Oct 06 12:02:04 2003
       
    18 * System Includes
       
    19 *
       
    20 */
       
    21 
       
    22 
       
    23 
       
    24 
       
    25 
       
    26 #include <stdio.h>
       
    27 
       
    28 
       
    29 /****************************************************************************************
       
    30  * 
       
    31  * Local Includes
       
    32  * 
       
    33  ***************************************************************************************/
       
    34 #include "CSvcFacontroller.h"
       
    35 #include "facontroller.h"
       
    36 #include "standard_service_manager.h"
       
    37 
       
    38 
       
    39 /****************************************************************************************
       
    40  * 
       
    41  * File-scope variables
       
    42  * 
       
    43  ***************************************************************************************/
       
    44 static TStartupInfo iStartupInfo;
       
    45 static CIntegerAllocator *iIntegerAllocator;
       
    46 static CComponentManager<CSFacontroller> *iComponentManager;
       
    47 
       
    48 
       
    49 /****************************************************************************************
       
    50  * 
       
    51  * Implementation
       
    52  * 
       
    53  ***************************************************************************************/
       
    54 
       
    55 
       
    56 /****************************************************************************************
       
    57  * 
       
    58  * PUBLIC: GetInstanceKeyFromArgs
       
    59  * 
       
    60  ***************************************************************************************/
       
    61 int CSvcFacontroller::GetInstanceKeyFromArgs( int aMethod, void *aArgs )
       
    62 {
       
    63 	int rv;
       
    64 	int *integer_ik;
       
    65 	TFaTunnelID *tunnel_ik;
       
    66 	TOptionDesc *option_ik;
       
    67 	TTimeoutRequest *timeout_ik;
       
    68 	TStartAgentRequest *startup_ik;
       
    69 	TGetTunnelRequest *get_tunnel_req_ik;
       
    70 
       
    71 	switch( aMethod ) {
       
    72 
       
    73 	// Methods with a single integer argument that is the key
       
    74 	case DSTR_REMOVEAGENT:
       
    75 	case STOPMOBILEAGENT:
       
    76 	case GETMOBILEAGENTSTATUS:
       
    77 	case GETSTATUS:
       
    78 	case LISTTUNNELS:
       
    79 		integer_ik = (int*)aArgs;
       
    80 		rv = *integer_ik;
       
    81 		break;
       
    82 
       
    83 	// Methods with TOptionDesc 
       
    84 	case SETSINGLEOPTION:
       
    85 	case REMOVESINGLEOPTION:
       
    86 	case ADDLISTOPTION:
       
    87 	case REMOVELISTOPTION:
       
    88 		option_ik = (TOptionDesc*)aArgs;
       
    89 		rv = option_ik->iAgentID;
       
    90 		break;
       
    91 
       
    92 	// TStartAgentRequest
       
    93 	case STARTMOBILEAGENT:
       
    94 	  startup_ik = (TStartAgentRequest*)aArgs;
       
    95 	  rv = startup_ik->iAgentID;
       
    96 	  break;
       
    97 
       
    98 	// Tunnel ID
       
    99 	case DESTROYTUNNELID:
       
   100 		tunnel_ik = (TFaTunnelID*)aArgs;
       
   101 		rv = tunnel_ik->iAgentID;
       
   102 		break;
       
   103 
       
   104 	// Timeout
       
   105 	case SETTIMEOUT:
       
   106 		timeout_ik = (TTimeoutRequest*)aArgs;
       
   107 		rv = timeout_ik->iAgentID;
       
   108 		break;
       
   109 
       
   110 	// TGetTunnelRequest
       
   111 	case GETTUNNELINFO:
       
   112 		get_tunnel_req_ik = (TGetTunnelRequest*)aArgs;
       
   113 		rv = get_tunnel_req_ik->iAgentID;
       
   114 		break;
       
   115 		
       
   116 	// error
       
   117 	default:
       
   118 		rv = ERR_INVALID_METHOD;
       
   119 		break;
       
   120 	}
       
   121 	return rv;
       
   122 }
       
   123 
       
   124 
       
   125 /****************************************************************************************
       
   126  * 
       
   127  * PUBLIC: SetError
       
   128  * 
       
   129  ***************************************************************************************/
       
   130 int CSvcFacontroller::SetError( int aMethod, void *aArgs, int aError )
       
   131 {
       
   132 	int rv = ERR_NONE;
       
   133 	TResult *result_rv;
       
   134 	TComponentList *result_cl;
       
   135 	TFaStatusInfo *result_fs;
       
   136 	TFaTunnelList *result_tl;
       
   137 	TFaTunnelInfo *result_ti;
       
   138 
       
   139 	switch( aMethod ) {
       
   140 
       
   141 	// TResult
       
   142 	case CSTR_CREATEAGENT:
       
   143 	case STARTMOBILEAGENT:
       
   144 	case STOPMOBILEAGENT:
       
   145 	case SETSINGLEOPTION:
       
   146 	case REMOVESINGLEOPTION:
       
   147 	case ADDLISTOPTION:
       
   148 	case REMOVELISTOPTION:
       
   149 	case DESTROYTUNNELID:
       
   150 		SET_ERROR_CODE( TResult, iServiceResult, result_rv );
       
   151 		break;
       
   152 
       
   153 	// TComponent
       
   154 	case LIST_DEVICES:
       
   155 		SET_LIST_ERROR_CODE( TComponentList, result_cl );
       
   156 		break;
       
   157 
       
   158 	// TFaStatusInfo
       
   159 	case GETSTATUS:
       
   160 		SET_ERROR_CODE( TFaStatusInfo, iCallResult.iServiceResult, result_fs );
       
   161 		break;
       
   162 
       
   163 	// TFaTunnelList
       
   164 	case LISTTUNNELS:
       
   165 		SET_LIST_ERROR_CODE( TFaTunnelList, result_tl );
       
   166 		break;
       
   167 
       
   168 	// TFaTunnelInfo 
       
   169 	case GETTUNNELINFO:
       
   170 		SET_ERROR_CODE( TFaTunnelInfo, iCallResult.iServiceResult, result_ti );
       
   171 		break;
       
   172 
       
   173 	// error
       
   174 	default:
       
   175 		rv = ERR_INVALID_METHOD;
       
   176 		break;
       
   177 	}
       
   178 
       
   179 	// done
       
   180 	return rv;
       
   181 }
       
   182 
       
   183 
       
   184 /****************************************************************************************
       
   185  * 
       
   186  * PUBLIC: GetError - Currently this methods will only ever be caleld for CSTR_CREATEAGENT
       
   187  * 
       
   188  ***************************************************************************************/
       
   189 int CSvcFacontroller::GetError( int aMethod, void *aArgs )
       
   190 {
       
   191 	TResult *result;
       
   192 
       
   193 	// check assumption
       
   194 	assert( aMethod == CSTR_CREATEAGENT );
       
   195 
       
   196 	// return error code
       
   197 	result = (TResult*)aArgs;
       
   198 	return result->iServiceResult;
       
   199 }
       
   200 
       
   201 
       
   202 /****************************************************************************************
       
   203  * 
       
   204  * PUBLIC: StartRPCService
       
   205  * 
       
   206  ***************************************************************************************/
       
   207 int CSvcFacontroller::StartRPCService( CComponentManager<CSFacontroller> *aComponentManager, void *aArg )
       
   208 {
       
   209   int err;
       
   210 
       
   211   // save the passed args
       
   212   iStartupInfo = *((TStartupInfo*)aArg);
       
   213   
       
   214   // create the component manager
       
   215   assert( iComponentManager == NULL );
       
   216   iComponentManager = aComponentManager;
       
   217   
       
   218   // setup the integer allocator
       
   219   iIntegerAllocator = new CIntegerAllocator();
       
   220   assert( iIntegerAllocator != NULL );
       
   221   err = iIntegerAllocator->AddToIntegerPool( iStartupInfo.iStartHostAddressRange, iStartupInfo.iStopHostAddressRange );
       
   222   if( err == -1 ) {
       
   223     delete iIntegerAllocator;
       
   224     iIntegerAllocator = NULL;
       
   225     return ERR_INTEGER_ALLOCATOR_SETUP_ERROR;
       
   226   }
       
   227   return ERR_NONE;
       
   228 }
       
   229 
       
   230 
       
   231 /****************************************************************************************
       
   232  * 
       
   233  * PUBLIC: StopRPCService
       
   234  * 
       
   235  ***************************************************************************************/
       
   236 int CSvcFacontroller::StopRPCService()
       
   237 {
       
   238   // cleanup the integer allocator
       
   239   delete iIntegerAllocator;
       
   240   iIntegerAllocator = NULL;
       
   241 
       
   242   // cleanup the component manager (stubs do the deletion)
       
   243   iComponentManager = NULL;
       
   244   return ERR_NONE;
       
   245 }
       
   246 
       
   247 
       
   248 /****************************************************************************************
       
   249  * 
       
   250  * PUBLIC: GetStartupInfo
       
   251  * 
       
   252  ***************************************************************************************/
       
   253 TStartupInfo CSvcFacontroller::GetStartupInfo()
       
   254 {
       
   255 	return iStartupInfo;
       
   256 }
       
   257 
       
   258 
       
   259 /****************************************************************************************
       
   260  * 
       
   261  * PUBLIC: GetIntegerAllocator
       
   262  * 
       
   263  ***************************************************************************************/
       
   264 CIntegerAllocator *CSvcFacontroller::GetIntegerAllocator()
       
   265 {
       
   266   return iIntegerAllocator;
       
   267 }