summaryrefslogtreecommitdiff
path: root/plugins/CurrencyRates/src/CurrencyRatesProviderVisitorFormatSpecificator.h
blob: f2e11b7f4453432d90c6c533b05bfe37e7df473f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef __00c159f3_525a_41e9_8fc5_00464b6fafa3_CurrencyRatesProviderVisitorFormatSpecificator_h__
#define __00c159f3_525a_41e9_8fc5_00464b6fafa3_CurrencyRatesProviderVisitorFormatSpecificator_h__

class CCurrencyRatesProviderVisitorFormatSpecificator : public CCurrencyRatesProviderVisitor
{
public:
	struct CFormatSpecificator
	{
		CFormatSpecificator(const tstring& rsSymbol = L"", const tstring& rsDec = L"")
			: m_sSymbol(rsSymbol), m_sDesc(rsDec){}

		tstring m_sSymbol;
		tstring m_sDesc;
	};
	typedef std::vector<CFormatSpecificator> TFormatSpecificators;

public:
	CCurrencyRatesProviderVisitorFormatSpecificator();
	~CCurrencyRatesProviderVisitorFormatSpecificator();

	const TFormatSpecificators& GetSpecificators()const;

private:
	virtual void Visit(const CCurrencyRatesProviderDukasCopy& rProvider)override;
	virtual void Visit(const CCurrencyRatesProviderBase& rProvider)override;
	virtual void Visit(const CCurrencyRatesProviderGoogleFinance& rProvider)override;
	virtual void Visit(const CCurrencyRatesProviderYahoo& rProvider)override;
	virtual void Visit(const CCurrencyRatesProviderCurrencyConverter& rProvider)override;
private:
	TFormatSpecificators m_aSpecificators;
};

#endif//__00c159f3_525a_41e9_8fc5_00464b6fafa3_CurrencyRatesProviderVisitorFormatSpecificator_h__