Kea  1.9.9-git
option6_iaaddr.h
Go to the documentation of this file.
1 // Copyright (C) 2011-2016 Internet Systems Consortium, Inc. ("ISC")
2 //
3 // This Source Code Form is subject to the terms of the Mozilla Public
4 // License, v. 2.0. If a copy of the MPL was not distributed with this
5 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 
7 #ifndef OPTION6_IAADDR_H
8 #define OPTION6_IAADDR_H
9 
10 #include <asiolink/io_address.h>
11 #include <dhcp/option.h>
12 #include <boost/shared_ptr.hpp>
13 
14 namespace isc {
15 namespace dhcp {
16 
18 
20 typedef boost::shared_ptr<Option6IAAddr> Option6IAAddrPtr;
21 
22 class Option6IAAddr: public Option {
23 
24 public:
26  static const size_t OPTION6_IAADDR_LEN = 24;
27 
36  Option6IAAddr(uint16_t type, const isc::asiolink::IOAddress& addr,
37  uint32_t preferred, uint32_t valid);
38 
46  Option6IAAddr(uint32_t type, OptionBuffer::const_iterator begin,
47  OptionBuffer::const_iterator end);
48 
50  virtual OptionPtr clone() const;
51 
58  void pack(isc::util::OutputBuffer& buf) const;
59 
64  virtual void unpack(OptionBufferConstIter begin,
66 
72  virtual std::string
73  toText(int indent = 0) const;
74 
75 
79  void setAddress(const isc::asiolink::IOAddress& addr) { addr_ = addr; }
80 
85  void setPreferred(unsigned int pref) { preferred_=pref; }
86 
91  void setValid(unsigned int valid) { valid_=valid; }
92 
97  getAddress() const { return addr_; }
98 
102  unsigned int
103  getPreferred() const { return preferred_; }
104 
108  unsigned int
109  getValid() const { return valid_; }
110 
112  virtual uint16_t len() const;
113 
114 protected:
117 
119  unsigned int preferred_;
120 
122  unsigned int valid_;
123 };
124 
125 } // isc::dhcp namespace
126 } // isc namespace
127 
128 #endif // OPTION_IA_H
static const size_t OPTION6_IAADDR_LEN
length of the fixed part of the IAADDR option
virtual uint16_t len() const
returns data length (data length + DHCPv4/DHCPv6 option header)
Option6IAAddr(uint16_t type, const isc::asiolink::IOAddress &addr, uint32_t preferred, uint32_t valid)
Constructor, used for options constructed (during transmission).
unsigned int valid_
contains valid-lifetime timer (in seconds)
virtual OptionPtr clone() const
Copies this option and returns a pointer to the copy.
isc::asiolink::IOAddress addr_
contains an IPv6 address
boost::shared_ptr< Option > OptionPtr
Definition: option.h:36
virtual std::string toText(int indent=0) const
Returns string representation of the option.
isc::asiolink::IOAddress getAddress() const
Returns address contained within this option.
void setPreferred(unsigned int pref)
Sets preferred lifetime (in seconds)
void setValid(unsigned int valid)
Sets valid lifetime (in seconds).
unsigned int getPreferred() const
Returns preferred lifetime of an address.
void setAddress(const isc::asiolink::IOAddress &addr)
sets address in this option.
The OutputBuffer class is a buffer abstraction for manipulating mutable data.
Definition: buffer.h:294
unsigned int getValid() const
Returns valid lifetime of an address.
OptionBuffer::const_iterator OptionBufferConstIter
const_iterator for walking over OptionBuffer
Definition: option.h:30
Defines the logger used by the top-level component of kea-dhcp-ddns.
virtual void unpack(OptionBufferConstIter begin, OptionBufferConstIter end)
Parses received buffer.
unsigned int preferred_
contains preferred-lifetime timer (in seconds)
void pack(isc::util::OutputBuffer &buf) const
Writes option in wire-format.
boost::shared_ptr< Option6IAAddr > Option6IAAddrPtr
A pointer to the isc::dhcp::Option6IAAddr object.
virtual bool valid() const
returns if option is valid (e.g.
Definition: option.cc:202