Commit | Line | Data |
---|---|---|
8d26221d CH |
1 | /* |
2 | The software in this package is distributed under the GNU General | |
3 | Public License version 2 (with a special exception described below). | |
4 | ||
5 | A copy of GNU General Public License (GPL) is included in this distribution, | |
6 | in the file COPYING.GPL. | |
7 | ||
8 | As a special exception, if other files instantiate templates or use macros | |
9 | or inline functions from this file, or you compile this file and link it | |
10 | with other works to produce a work based on this file, this file | |
11 | does not by itself cause the resulting work to be covered | |
12 | by the GNU General Public License. | |
13 | ||
14 | However the source code for this file must still be made available | |
15 | in accordance with section (3) of the GNU General Public License. | |
16 | ||
17 | This exception does not invalidate any other reasons why a work based | |
18 | on this file might be covered by the GNU General Public License. | |
19 | ||
20 | Christian Herdtweck, Intra2net AG 2015 | |
21 | */ | |
22 | ||
23 | #ifndef DNS_CNAME_H | |
24 | #define DNS_CNAME_H | |
25 | ||
26 | #include <boost/serialization/access.hpp> | |
27 | #include <boost/serialization/nvp.hpp> | |
28 | #include <boost/serialization/split_member.hpp> | |
29 | #include <boost/serialization/string.hpp> | |
30 | ||
31 | #include "dns/timetolive.h" | |
32 | ||
33 | // ----------------------------------------------------------------------------- | |
34 | // CNAME | |
35 | // ----------------------------------------------------------------------------- | |
36 | ||
37 | struct Cname | |
38 | { // all public: | |
39 | std::string Host; | |
40 | TimeToLive Ttl; | |
41 | ||
4e691eb0 CH |
42 | Cname() {} |
43 | Cname(const std::string &host, const uint32_t ttl) | |
44 | : Host(host), Ttl( TimeToLive(ttl) ) {} | |
45 | ||
46 | Cname(const std::string &host, const TimeToLive &ttl) | |
47 | : Host(host), Ttl(ttl) {} | |
8d26221d CH |
48 | |
49 | // serialization | |
50 | friend class boost::serialization::access; | |
51 | template<class Archive> | |
52 | void save(Archive & ar, const unsigned int version) const | |
53 | { | |
54 | ar & BOOST_SERIALIZATION_NVP(Host); | |
55 | ar & BOOST_SERIALIZATION_NVP(Ttl); | |
56 | } | |
57 | template<class Archive> | |
58 | void load(Archive & ar, const unsigned int version) | |
59 | { | |
60 | ar & BOOST_SERIALIZATION_NVP(Host); | |
61 | ar & BOOST_SERIALIZATION_NVP(Ttl); | |
62 | } | |
63 | BOOST_SERIALIZATION_SPLIT_MEMBER() | |
64 | }; | |
65 | ||
66 | #endif |