/*
* 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.
* Fri Oct 17 09:37:12 2003
*
*/




#ifndef __CSPPPCONTROLLER_H__
#define __CSPPPCONTROLLER_H__


/****************************************************************************************
 * 
 * Local Includes
 * 
 ***************************************************************************************/
#include "pppcontroller.h"
#include "../ProcessLibrary/proclib.h"


/****************************************************************************************
 * 
 * Types
 * 
 ***************************************************************************************/
typedef enum {
	MM_FIRST,
	MM_LAST,
	MM_ERROR
} TMultiMatchSemantics;

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

	// RPC Service Methods
	TResult cstr_startpppsession( TPppSessionConfig aArgs );
	TResult dstr_removepppsession( int aArgs, int *aDeleteInstance );
	TResult killsession( int aArgs );
	TResult stopsession( int aArgs );
	TPppSessionDesc getsessioninfo( int aArgs );
	TVarData getppplog( int aArgs );

private:
	TResult GetInterfaceName();
	TResult UpdateSessionStatus();
	TResult CopyFileIntoBuffer( char *aFilename, TVarData *aData );
	TResult GetTokenFromFile( string aPrefix, string *aToken, TMultiMatchSemantics aMultiMatchSemantics );
	TResult GetIPAddresses();

	int iKey;
	CAProcess *iProcess;
	TResult StopProcessWithSignal( int aSignal );
	TPppSessionConfig iSessionConfig;
	string iInterfaceName;
	TPppSessionStatus iSessionStatus;
	int iLocalIPAddress;
	int iRemoteIPAddress;
};

#endif
