#ifndef __c0e48a95_b3f0_4227_8adc_455e265f3c14_QuotesProviderGoogle_h__
#define __c0e48a95_b3f0_4227_8adc_455e265f3c14_QuotesProviderGoogle_h__

#define DB_STR_FROM_ID "FromID"
#define DB_STR_TO_ID "ToID"
#define DB_STR_FROM_DESCRIPTION "FromDesc"
#define DB_STR_TO_DESCRIPTION "ToDesc"
#define DB_STR_GOOGLE_REFRESH_RATE_TYPE "Google_RefreshRateType"
#define DB_STR_GOOGLE_REFRESH_RATE_VALUE "Google_RefreshRateValue"
#define DB_STR_GOOGLE_DISPLAY_NAME_FORMAT "Google_DspNameFrmt"
// #define DB_STR_GOOGLE_LOG_FILE_FORMAT "Google_LogFileFormat"
// #define DB_STR_GOOGLE_HISTORY_FORMAT "Google_HistoryFormat"

class CQuotesProviderGoogle : public CQuotesProviderBase
{
public:
	struct CRateInfo
	{
		CQuotesProviderBase::CQuote m_from;
		CQuotesProviderBase::CQuote m_to;
	};
public:
	CQuotesProviderGoogle();
	~CQuotesProviderGoogle();

	bool WatchForRate(const CRateInfo& ri, bool bWatch);
	size_t GetWatchedRateCount()const;
	bool GetWatchedRateInfo(size_t nIndex, CRateInfo& rRateInfo);

	MCONTACT GetContactByID(const tstring& rsFromID, const tstring& rsToID)const;

	double Convert(double dAmount, const CQuote& from, const CQuote& to)const;

private:
	virtual void RefreshQuotes(TContracts& anContacts);
	virtual void ShowPropertyPage(WPARAM wp, OPTIONSDIALOGPAGE& odp);
	virtual void Accept(CQuotesProviderVisitor& visitor)const;
};

#endif //__c0e48a95_b3f0_4227_8adc_455e265f3c14_QuotesProviderGoogle_h__