NS-3 based Named Data Networking (NDN) simulator
ndnSIM 2.0: NDN, CCN, CCNx, content centric networks
API Documentation
control-response.hpp
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
22 #ifndef NDN_MGMT_CONTROL_RESPONSE_HPP
23 #define NDN_MGMT_CONTROL_RESPONSE_HPP
24 
25 #include "../encoding/block.hpp"
26 
27 namespace ndn {
28 namespace mgmt {
29 
33 {
34 public:
35  class Error : public tlv::Error
36  {
37  public:
38  explicit
39  Error(const std::string& what)
40  : tlv::Error(what)
41  {
42  }
43  };
44 
46 
47  ControlResponse(uint32_t code, const std::string& text);
48 
49  explicit
50  ControlResponse(const Block& block);
51 
52  uint32_t
53  getCode() const;
54 
56  setCode(uint32_t code);
57 
58  const std::string&
59  getText() const;
60 
62  setText(const std::string& text);
63 
64  const Block&
65  getBody() const;
66 
68  setBody(const Block& body);
69 
70  const Block&
71  wireEncode() const;
72 
73  void
74  wireDecode(const Block& block);
75 
76 protected:
77  uint32_t m_code;
78  std::string m_text;
80 
81  mutable Block m_wire;
82 };
83 
84 inline uint32_t
86 {
87  return m_code;
88 }
89 
90 inline ControlResponse&
92 {
93  m_code = code;
94  m_wire.reset();
95  return *this;
96 }
97 
98 inline const std::string&
100 {
101  return m_text;
102 }
103 
104 inline ControlResponse&
105 ControlResponse::setText(const std::string& text)
106 {
107  m_text = text;
108  m_wire.reset();
109  return *this;
110 }
111 
112 inline const Block&
114 {
115  return m_body;
116 }
117 
118 inline ControlResponse&
120 {
121  m_body = body;
122  m_body.encode(); // will do nothing if already encoded
123  m_wire.reset();
124  return *this;
125 }
126 
127 std::ostream&
128 operator<<(std::ostream& os, const ControlResponse& response);
129 
130 } // namespace mgmt
131 } // namespace ndn
132 
133 #endif // NDN_MGMT_CONTRO_RESPONSE_HPP
Copyright (c) 2011-2015 Regents of the University of California.
const Block & getBody() const
Class representing a wire element of NDN-TLV packet format.
Definition: block.hpp:43
const Block & wireEncode() const
void reset()
Reset wire buffer of the element.
Definition: block.cpp:302
std::ostream & operator<<(std::ostream &os, const ControlResponse &response)
Error(const std::string &what)
ControlResponse & setText(const std::string &text)
ControlResponse & setBody(const Block &body)
void wireDecode(const Block &block)
void encode()
Encode subblocks into wire buffer.
Definition: block.cpp:355
const std::string & getText() const
ControlCommand response.
ControlResponse & setCode(uint32_t code)
represents an error in TLV encoding or decoding
Definition: tlv.hpp:50