#pragma once

#include "GobiApiService.h"

class CFuncList;

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

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

protected:
	static const TableFuncEntry m_TableFunc[];

	static BOOL FuncOMADMStartSession(CParamList* pParams = NULL);
	static BOOL FuncOMADMCancelSession(CParamList* pParams = NULL);
	static BOOL FuncOMADMGetSessionInfo(CParamList* pParams = NULL);
	static BOOL FuncOMADMGetPendingNIA(CParamList* pParams = NULL);
	static BOOL FuncOMADMSendSelection(CParamList* pParams = NULL);
	static BOOL FuncOMADMGetFeatureSettings(CParamList* pParams = NULL);
	static BOOL FuncOMADMSetProvisioningFeature(CParamList* pParams = NULL);
	static BOOL FuncOMADMSetPRLUpdateFeature(CParamList* pParams = NULL);
	static BOOL FuncSetOMADMAlertCallback(CParamList* pParams /*= NULL*/);
	static BOOL FuncSetOMADMStateCallback(CParamList* pParams /*= NULL*/);

	static CParamList CGobiApiOma::m_sStartSessions;
	static CParamList CGobiApiOma::m_sSendSelection;
	static CParamList CGobiApiOma::m_sSetProvisioningFeature;
	static CParamList CGobiApiOma::m_sSetPrlUpdate;
	static CParamList CGobiApiOma::m_sSetOMADMStateCallback;
	static CParamList CGobiApiOma::m_sSetOMADMAlertCallback;
};
