Revised OpenFlow Library  v0.6.0dev
 All Classes Files Functions Variables Friends Groups Pages
cofmsg_group_desc_stats.h
1 /*
2  * cofmsg_group_desc_stats.h
3  *
4  * Created on: 18.03.2013
5  * Author: andi
6  */
7 
8 #ifndef COFMSG_GROUP_DESC_STATS_H_
9 #define COFMSG_GROUP_DESC_STATS_H_ 1
10 
11 #include <vector>
12 
13 #include "rofl/common/openflow/messages/cofmsg_stats.h"
14 #include "rofl/common/openflow/cofgroupdescstatsarray.h"
15 
16 namespace rofl {
17 namespace openflow {
18 
24 {
25 private:
26 
27 public:
28 
29 
34  uint8_t of_version = 0,
35  uint32_t xid = 0,
36  uint16_t flags = 0);
37 
38 
43  cofmsg_group_desc_stats_request const& stats);
44 
45 
50  operator= (
51  cofmsg_group_desc_stats_request const& stats);
52 
53 
57  virtual
59 
60 
65 
66 
70  virtual void
71  reset();
72 
73 
77  virtual uint8_t*
78  resize(size_t len);
79 
80 
84  virtual size_t
85  length() const;
86 
87 
91  virtual void
92  pack(uint8_t *buf = (uint8_t*)0, size_t buflen = 0);
93 
94 
98  virtual void
99  unpack(uint8_t *buf, size_t buflen);
100 
101 
104  virtual void
105  validate();
106 
107 public:
108 
109  friend std::ostream&
110  operator<< (std::ostream& os, cofmsg_group_desc_stats_request const& msg) {
111  os << dynamic_cast<cofmsg const&>( msg );
112  os << indent(2) << "<cofmsg_group_desc_stats_request >" << std::endl;
113  return os;
114  };
115 };
116 
117 
118 
119 
124  public cofmsg_stats_reply
125 {
126 private:
127 
128  rofl::openflow::cofgroupdescstatsarray groupdescstatsarray;
129 
130  union {
131  uint8_t* ofhu_group_desc_stats;
132  struct rofl::openflow12::ofp_group_desc_stats* ofhu12_group_desc_stats;
133  struct rofl::openflow13::ofp_group_desc* ofhu13_group_desc_stats;
134  } ofhu;
135 
136 #define ofh_group_desc_stats ofhu.ofhu_group_desc_stats
137 #define ofh12_group_desc_stats ofhu.ofhu12_group_desc_stats
138 #define ofh13_group_desc ofhu.ofhu13_group_desc
139 
140 public:
141 
142 
147  uint8_t of_version = 0,
148  uint32_t xid = 0,
149  uint16_t flags = 0,
151 
152 
157  cofmsg_group_desc_stats_reply const& stats);
158 
159 
164  operator= (
165  cofmsg_group_desc_stats_reply const& stats);
166 
167 
171  virtual
173 
174 
179 
180 
184  virtual void
185  reset();
186 
187 
191  virtual uint8_t*
192  resize(size_t len);
193 
194 
198  virtual size_t
199  length() const;
200 
201 
205  virtual void
206  pack(uint8_t *buf = (uint8_t*)0, size_t buflen = 0);
207 
208 
212  virtual void
213  unpack(uint8_t *buf, size_t buflen);
214 
215 
218  virtual void
219  validate();
220 
221 
222 public:
223 
224 
229  set_group_desc_stats_array() { return groupdescstatsarray; };
230 
235  get_group_desc_stats_array() const { return groupdescstatsarray; };
236 
237 
238 public:
239 
240  friend std::ostream&
241  operator<< (std::ostream& os, cofmsg_group_desc_stats_reply const& msg) {
242  os << dynamic_cast<cofmsg const&>( msg );
243  os << indent(2) << "<cofmsg_group_desc_stats_reply >" << std::endl;
244  indent i(4);
245  os << msg.groupdescstatsarray;
246  return os;
247  };
248 };
249 
250 } // end of namespace openflow
251 } // end of namespace rofl
252 
253 #endif /* COFMSG_GROUP_DESC_STATS_H_ */
virtual void validate()
Definition: cofmsg_group_desc_stats.cc:143
virtual void reset()
Definition: cofmsg_group_desc_stats.cc:250
virtual ~cofmsg_group_desc_stats_reply()
Definition: cofmsg_group_desc_stats.cc:242
virtual ~cofmsg_group_desc_stats_request()
Definition: cofmsg_group_desc_stats.cc:64
Definition: cofmsg_stats.h:264
virtual void reset()
Definition: cofmsg_group_desc_stats.cc:72
virtual size_t length() const
Definition: cofmsg_group_desc_stats.cc:88
cofmsg_group_desc_stats_request(uint8_t of_version=0, uint32_t xid=0, uint16_t flags=0)
Definition: cofmsg_group_desc_stats.cc:5
virtual void validate()
Definition: cofmsg_group_desc_stats.cc:330
Definition: cofmsg_stats.h:187
virtual void pack(uint8_t *buf=(uint8_t *) 0, size_t buflen=0)
Definition: cofmsg_group_desc_stats.cc:106
Definition: cofmsg_group_desc_stats.h:22
Definition: cofgroupdescstatsarray.h:20
virtual void pack(uint8_t *buf=(uint8_t *) 0, size_t buflen=0)
Definition: cofmsg_group_desc_stats.cc:295
Definition: openflow13.h:1485
virtual void unpack(uint8_t *buf, size_t buflen)
Definition: cofmsg_group_desc_stats.cc:320
C++ abstraction for malloc'ed memory areas.
Definition: cmemory.h:44
Definition: openflow12.h:1519
Definition: logging.h:76
Definition: cofmsg_group_desc_stats.h:123
virtual size_t length() const
Definition: cofmsg_group_desc_stats.cc:277
virtual void unpack(uint8_t *buf, size_t buflen)
Definition: cofmsg_group_desc_stats.cc:133
cofmsg_group_desc_stats_reply(uint8_t of_version=0, uint32_t xid=0, uint16_t flags=0, rofl::openflow::cofgroupdescstatsarray const &groupdescs=rofl::openflow::cofgroupdescstatsarray())
Definition: cofmsg_group_desc_stats.cc:165