Kea  1.5.0
option6_status_code.h
Go to the documentation of this file.
1 // Copyright (C) 2015-2018 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_STATUS_CODE_H
8 #define OPTION6_STATUS_CODE_H
9 
10 #include <dhcp/option.h>
11 #include <boost/shared_ptr.hpp>
12 #include <stdint.h>
13 #include <string>
14 
15 namespace isc {
16 namespace dhcp {
17 
18 class Option6StatusCode;
19 
21 typedef boost::shared_ptr<Option6StatusCode> Option6StatusCodePtr;
22 
24 class Option6StatusCode: public Option {
25 public:
30  Option6StatusCode(const uint16_t status_code, const std::string& status_message);
31 
39 
41  virtual OptionPtr clone() const;
42 
49  virtual void pack(isc::util::OutputBuffer& buf) const;
50 
57  virtual void unpack(OptionBufferConstIter begin, OptionBufferConstIter end);
58 
62  virtual uint16_t len() const;
63 
67  virtual std::string toText(int indent = 0) const;
68 
73  std::string dataToText() const;
74 
76  uint16_t getStatusCode() const {
77  return (status_code_);
78  }
79 
81  std::string getStatusCodeName() const;
82 
86  void setStatusCode(const uint16_t status_code) {
87  status_code_ = status_code;
88  }
89 
91  const std::string& getStatusMessage() const {
92  return (status_message_);
93  }
94 
98  void setStatusMessage(const std::string& status_message) {
99  status_message_ = status_message;
100  }
101 
102 private:
103 
105  uint16_t status_code_;
106 
108  std::string status_message_;
109 
110 };
111 
113 
114 class Option4SlpServiceScope;
115 
117 typedef boost::shared_ptr<Option4SlpServiceScope> Option4SlpServiceScopePtr;
118 
121 public:
126  Option4SlpServiceScope(const bool mandatory_flag, const std::string& scope_list);
127 
135 
137  virtual OptionPtr clone() const;
138 
145  virtual void pack(isc::util::OutputBuffer& buf) const;
146 
154  virtual void unpack(OptionBufferConstIter begin, OptionBufferConstIter end);
155 
159  virtual uint16_t len() const;
160 
164  virtual std::string toText(int indent = 0) const;
165 
170  std::string dataToText() const;
171 
173  bool getMandatoryFlag() const {
174  return (mandatory_flag_);
175  }
176 
180  void setMandatoryFlag(const bool mandatory_flag) {
181  mandatory_flag_ = mandatory_flag;
182  }
183 
185  const std::string& getScopeList() const {
186  return (scope_list_);
187  }
188 
192  void setScopeList(std::string& scope_list) {
193  scope_list_ = scope_list;
194  }
195 
196 private:
197 
199  bool mandatory_flag_;
200 
202  std::string scope_list_;
203 
204 };
205 
206 } // isc::dhcp namespace
207 } // isc namespace
208 
209 #endif // OPTION6_STATUS_CODE_H
isc::dhcp::Option4SlpServiceScope::clone
virtual OptionPtr clone() const
Copies this option and returns a pointer to the copy.
Definition: option6_status_code.cc:157
isc::dhcp::Option4SlpServiceScope::pack
virtual void pack(isc::util::OutputBuffer &buf) const
Writes option in wire-format.
Definition: option6_status_code.cc:162
isc::dhcp::Option4SlpServiceScope::setScopeList
void setScopeList(std::string &scope_list)
Sets new scope list.
Definition: option6_status_code.h:192
isc::dhcp::Option4SlpServiceScope::getMandatoryFlag
bool getMandatoryFlag() const
Returns mandatory flag.
Definition: option6_status_code.h:173
isc::dhcp::Option6StatusCode::toText
virtual std::string toText(int indent=0) const
Returns textual representation of the option.
Definition: option6_status_code.cc:85
isc::dhcp::Option6StatusCodePtr
boost::shared_ptr< Option6StatusCode > Option6StatusCodePtr
Pointer to the isc::dhcp::Option6StatusCode.
Definition: option6_status_code.h:18
isc::dhcp::Option4SlpServiceScope::setMandatoryFlag
void setMandatoryFlag(const bool mandatory_flag)
Sets new mandatory flag.
Definition: option6_status_code.h:180
isc::dhcp::Option4SlpServiceScope::toText
virtual std::string toText(int indent=0) const
Returns textual representation of the option.
Definition: option6_status_code.cc:202
isc::dhcp::Option6StatusCode::Option6StatusCode
Option6StatusCode(const uint16_t status_code, const std::string &status_message)
Constructor, used for options constructed (during transmission).
Definition: option6_status_code.cc:31
isc
Defines the logger used by the top-level component of kea-dhcp-ddns.
Definition: agent_parser.cc:144
isc::dhcp::Option6StatusCode::setStatusMessage
void setStatusMessage(const std::string &status_message)
Sets new status message.
Definition: option6_status_code.h:98
isc::dhcp::Option4SlpServiceScope
This class represents SLP Service Scope option (79) from RFC2610.
Definition: option6_status_code.h:120
isc::dhcp::Option6StatusCode::setStatusCode
void setStatusCode(const uint16_t status_code)
Sets new numeric status code.
Definition: option6_status_code.h:86
isc::util::OutputBuffer
The OutputBuffer class is a buffer abstraction for manipulating mutable data.
Definition: buffer.h:294
isc::dhcp::Option4SlpServiceScope::unpack
virtual void unpack(OptionBufferConstIter begin, OptionBufferConstIter end)
Parses received buffer.
Definition: option6_status_code.cc:176
isc::dhcp::Option6StatusCode::dataToText
std::string dataToText() const
Returns textual representation of the option data.
Definition: option6_status_code.cc:93
isc::dhcp::Option4SlpServiceScope::getScopeList
const std::string & getScopeList() const
Returns scope list.
Definition: option6_status_code.h:185
isc::dhcp::Option6StatusCode::pack
virtual void pack(isc::util::OutputBuffer &buf) const
Writes option in wire-format.
Definition: option6_status_code.cc:52
isc::dhcp::Option4SlpServiceScope::Option4SlpServiceScope
Option4SlpServiceScope(const bool mandatory_flag, const std::string &scope_list)
Constructor, used for options constructed (during transmission).
Definition: option6_status_code.cc:141
isc::dhcp::Option6StatusCode::getStatusMessage
const std::string & getStatusMessage() const
Returns status message.
Definition: option6_status_code.h:91
isc::dhcp::OptionPtr
boost::shared_ptr< Option > OptionPtr
Definition: option.h:37
isc::dhcp::Option6StatusCode::len
virtual uint16_t len() const
Returns total length of the option.
Definition: option6_status_code.cc:80
isc::dhcp::Option6StatusCode::getStatusCodeName
std::string getStatusCodeName() const
Returns the name of the status code.
Definition: option6_status_code.cc:111
isc::dhcp::Option6StatusCode::clone
virtual OptionPtr clone() const
Copies this option and returns a pointer to the copy.
Definition: option6_status_code.cc:47
option.h
isc::dhcp::Option6StatusCode::unpack
virtual void unpack(OptionBufferConstIter begin, OptionBufferConstIter end)
Parses received buffer.
Definition: option6_status_code.cc:66
isc::dhcp::Option6StatusCode
This class represents Status Code option (13) from RFC 8415.
Definition: option6_status_code.h:24
isc::dhcp::Option4SlpServiceScope::dataToText
std::string dataToText() const
Returns textual representation of the option data.
Definition: option6_status_code.cc:210
isc::dhcp::Option
Definition: option.h:58
isc::dhcp::OptionBufferConstIter
OptionBuffer::const_iterator OptionBufferConstIter
const_iterator for walking over OptionBuffer
Definition: option.h:31
isc::dhcp::Option6StatusCode::getStatusCode
uint16_t getStatusCode() const
Returns numeric status code.
Definition: option6_status_code.h:76
isc::dhcp::Option4SlpServiceScopePtr
boost::shared_ptr< Option4SlpServiceScope > Option4SlpServiceScopePtr
Pointer to the isc::dhcp::Option4SlpServiceScope.
Definition: option6_status_code.h:114
isc::dhcp::Option4SlpServiceScope::len
virtual uint16_t len() const
Returns total length of the option.
Definition: option6_status_code.cc:197