Fix 'occurred' typo
[bpdyndnsd] / src / service_easydns.hpp
... / ...
CommitLineData
1/** @file
2 * @brief EASYDNS Service class header. This class represents the EASYDNS service.
3 *
4 *
5 *
6 * @copyright Intra2net AG
7 * @license GPLv2
8*/
9
10#ifndef ServiceEasydns_H
11#define ServiceEasydns_H
12
13#include "service.hpp"
14#include "logger.hpp"
15#include "httphelper.hpp"
16
17#include <boost/shared_ptr.hpp>
18#include <string>
19
20
21class ServiceEasydns : public Service
22{
23
24private:
25
26 friend class boost::serialization::access;
27 template<class Archive>
28 void serialize(Archive & ar, const unsigned int version)
29 {
30 ar & boost::serialization::base_object<Service>(*this);
31 }
32
33 std::string BaseUrl;
34
35 HTTPHelper::Ptr HTTPHelp;
36
37 std::list<std::string> separate_domain_and_host_part(const std::string& str) const;
38
39 std::string assemble_base_url(const std::string& hostname, const std::string& two_level_tld) const;
40
41 std::string get_two_level_tld(const std::string& domain_part) const;
42
43public:
44
45 typedef boost::shared_ptr<ServiceEasydns> Ptr;
46
47 ServiceEasydns();
48
49 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);
50
51 ~ServiceEasydns();
52
53 UpdateErrorCode perform_update(const std::string& ip);
54
55};
56
57#endif