/* */ #ifndef _D_DNS_CACHE_H_ #define _D_DNS_CACHE_H_ #include "common.h" #include class DNSCache { public: virtual ~DNSCache() {} virtual string find(const string& hostname) = 0; virtual void put(const string& hostname, const string& ipaddr) = 0; }; typedef SharedHandle DNSCacheHandle; typedef SingletonHolder DNSCacheSingletonHolder; class SimpleDNSCache : public DNSCache { private: map _table; public: SimpleDNSCache() {} virtual ~SimpleDNSCache() {} virtual string find(const string& hostname) { return _table[hostname]; } virtual void put(const string& hostname, const string& ipaddr) { _table[hostname] = ipaddr; } }; class NullDNSCache : public DNSCache { public: virtual ~NullDNSCache() {} virtual string find(const string& hostname) { return ""; } virtual void put(const string& hostname, const string& ipaddr) {} }; #endif // _D_DNS_CACHE_H_