#pragma once

#include "GobiApiService.h"

class CFuncList;

class CGobiApiSwiOma : public CGobiApiService
{
public:
	CGobiApiSwiOma(HMODULE hQCDll);
	~CGobiApiSwiOma(void);

	BOOL GetAvailFuncList(CFuncList* pFuncList);
	UINT ExecuteFunctions(CFuncList* pFuncList, UINT &nTotalExec);

protected:
	static const TableFuncEntry m_TableFunc[];

	static BOOL FuncSWIOMADMInitApi(CParamList* pParams = NULL);
	static BOOL FuncSWIOMADMShutdownApi(CParamList* pParams = NULL);
	static BOOL FuncSWIOMADMSessionStart(CParamList* pParams = NULL);
	static BOOL FuncSWIOMADMSessionCancel(CParamList* pParams = NULL);
	static BOOL FuncSWIOMADMSessionGetInfo(CParamList* pParams = NULL);
	static BOOL FuncSWIOMADMSelection(CParamList* pParams = NULL);
	static BOOL FuncSWIOMADMGetSettings(CParamList* pParmas = NULL);
	static BOOL FuncSWIOMADMSetSettings(CParamList* pParams = NULL);
	static BOOL FuncSWIOMADMSetEventReport(CParamList* pParams = NULL);
	static BOOL FuncSetSWIOMADMFotaCallback(CParamList* pParams /*= NULL*/);
	static BOOL FuncSetSWIOMADMAlertCallback(CParamList* pParams /*= NULL*/);

	static CParamList CGobiApiSwiOma::m_sSessionsStart;
	static CParamList CGobiApiSwiOma::m_sSessionsCancel;
	static CParamList CGobiApiSwiOma::m_sSessionsGetInfo;
	static CParamList CGobiApiSwiOma::m_sSelection;
	static CParamList CGobiApiSwiOma::m_sGetSettings;
	static CParamList CGobiApiSwiOma::m_sSetSettings;
	static CParamList CGobiApiSwiOma::m_sSetEventReport;
	static CParamList CGobiApiSwiOma::m_sSetSWIOMADMFotaCallback;
	static CParamList CGobiApiSwiOma::m_sSetSWIOMADMAlertCallback;
	
};
