#pragma once

#include "GobiApiService.h"

class CFuncList;

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

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

protected:

	static const TableFuncEntry m_TableFunc[];

	static BOOL FuncDeleteSMS(CParamList* pParams = NULL);
	static BOOL FuncGetSMSList(CParamList* pParams = NULL);
	static BOOL FuncGetSMS(CParamList* pParams = NULL);
	static BOOL FuncModifySMSStatus(CParamList* pParams = NULL);
	static BOOL FuncSaveSMS(CParamList* pParams = NULL);
	static BOOL FuncSendSMS(CParamList* pParams = NULL);
	static BOOL FuncGetSMSCAddress(CParamList* pParams = NULL);
	static BOOL FuncSetSMSCAddress(CParamList* pParams = NULL);
	static BOOL FuncSetNewSmsCallback(CParamList* pParams = NULL);
	static BOOL FuncGetSMSRoutes(CParamList* pParams = NULL);
	static BOOL FuncSetSMSRoutes(CParamList* pParams = NULL);
	static BOOL FuncGetRoutes(CParamList* pParams = NULL);
	static BOOL FuncSetRoutes(CParamList* pParams = NULL);
	static BOOL FuncReadWCDMATextMsg(CParamList* pParams = NULL);
	static BOOL FuncReadCDMATextMsg(CParamList* pParams = NULL);
	static BOOL FuncStoreWCDMATextMsg(CParamList* pParams = NULL);
	static BOOL FuncSendWCDMATextMsg(CParamList* pParams = NULL);
	static BOOL FuncSendCDMATextMsg(CParamList* pParams = NULL);
    static BOOL FuncSetSMSProtocol(CParamList* pParams = NULL);
    static BOOL FuncGetSMSProtocol(CParamList* pParams = NULL);

	static CParamList m_sSetNetworkPrefParams;
	static CParamList m_sGetSMSList;
	static CParamList m_sGetSMS;
	static CParamList m_sSetSmscAddress;
	static CParamList m_sModifySMSStatus;
	static CParamList m_sSendSMS;
	static CParamList m_sSaveSMS;
	static CParamList m_sDeleteSMS;
	static CParamList m_sSetNewSmsCallback;
	static CParamList m_sSetRoutes;
	static CParamList m_sReadWCDMATextMsg;
	static CParamList m_sReadCDMATextMsg;
	static CParamList m_sStoreWCDMATextMsg;
	static CParamList m_sStoreCDMATextMsg;
	static CParamList m_sSendWCDMATextMsg;
	static CParamList m_sSendCDMATextMsg;
    static CParamList m_sSMSProtocol;
};
