#include #include #include #include class dns_entry { }; class dns_cache { std::map entries; boost::shared_mutex entry_mutex; public: dns_entry find_entry(std::string const& domain) { boost::shared_lock lk(entry_mutex); std::map::const_iterator const it = entries.find(domain); return (it == entries.end()) ? dns_entry() : it->second; } void update_or_add_entry(std::string const& domain, dns_entry const& dns_details) { std::lock_guard lk(entry_mutex); entries[domain] = dns_details; } }; int main() { }