/** @file * @brief DHS Service class header. This class represents the DHS service. * * * * @copyright Intra2net AG * @license GPLv2 */ #ifndef ServiceDhs_H #define ServiceDhs_H #include "service.hpp" #include "logger.hpp" #include "httphelper.hpp" #include #include #include class ServiceDhs : public Service { private: friend class boost::serialization::access; template void serialize(Archive & ar, const unsigned int version) { ar & boost::serialization::base_object(*this); } std::string BaseUrl; HTTPHelper::Ptr HTTPHelp; std::list separate_domain_and_host_part(const std::string& str) const; std::string assemble_base_url(const std::string& hostname, const std::string& domain_part) const; public: typedef boost::shared_ptr Ptr; ServiceDhs(); ServiceDhs(const std::string& _protocol, const std::string& _hostname, const std::string& _login, const std::string& _password, const Logger::Ptr& _logger, const int _update_interval, const int _max_updates_within_interval, const int max_equal_updates_in_succession, const int dns_cache_ttl, const std::string& proxy, const int proxy_port); ~ServiceDhs(); UpdateErrorCode perform_update(const std::string& ip); }; #endif