/*
* 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
*
*/





#ifndef __CSFACONTROLLER_H__
#define __CSFACONTROLLER_H__


/****************************************************************************************
 * 
 * System Includes
 * 
 ***************************************************************************************/
#include <string>
using namespace std;


/****************************************************************************************
 * 
 * Local Includes
 * 
 ***************************************************************************************/
#include "../include/standard_unix.h"
#include "../DynamicsConfigurationLibrary/CDynamicsConfigFile.h"
#include "../ProcessLibrary/proclib.h"
#include "../AliasLibrary/CInterfaceAlias.h"
#include "../DynamicsCommandWrapper/CDynamicsCommand.h"
#include "facontroller.h"


/****************************************************************************************
 * 
 * Definition: CSFacontroller
 * 
 ***************************************************************************************/
class CSFacontroller
{
public:
	// Standard Methods
	CSFacontroller();
	~CSFacontroller();
	int GetKey();
	void SetKey( int aKey );

	// RPC Service Methods
	TResult cstr_createagent( void );
	int dstr_removeagent( int aArgs, int *aDeleteInstance );
	TResult startmobileagent( TStartAgentRequest aArgs );
	TResult stopmobileagent( int aArgs );
	TResult getmobileagentstatus( int aArgs );
	TResult setsingleoption( TOptionDesc aArgs );
	TResult removesingleoption( TOptionDesc aArgs );
	TResult addlistoption( TOptionDesc aArgs );
	TResult removelistoption( TOptionDesc aArgs );
	TFaStatusInfo getstatus( int aArgs );
	TResult destroytunnelid( TFaTunnelID aArgs );
	TFaTunnelList listtunnels( int aArgs );
	TFaTunnelInfo gettunnelinfo( TGetTunnelRequest aArgs );
	void settimeout( TTimeoutRequest aArgs );

private:
	TResult is_agent_running();
	void set_dynamics_error( TResult *result, TDynamicsCallInfo *cres );

	int iKey;
	int iDynamicsCallTimeout;
	int iInterfaceIndex;
	int iInterfaceHostAddress;
	CDynamicsConfigFile iDynamicsConfigFile;
	CAProcess *iAgentProcess;
	CInterfaceAlias iAgentInterface;
	string iLowerInterface;
	CDynamicsCommand iDynamicsCommand;
};

#endif
