/** @file * @brief EASYDNS Service class header. This class represents the EASYDNS service. * * * * @copyright Intra2net AG * @license GPLv2 */ #ifndef ServiceEasydns_H #define ServiceEasydns_H #include "service.hpp" #include "logger.hpp" #include "httphelper.hpp" #include #include class ServiceEasydns : 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& two_level_tld) const; std::string get_two_level_tld(const std::string& domain_part) const; public: typedef boost::shared_ptr Ptr; ServiceEasydns(); ServiceEasydns(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); ~ServiceEasydns(); UpdateErrorCode perform_update(const std::string& ip); }; #endif