Revised OpenFlow Library  v0.6.0dev
 All Classes Files Functions Variables Friends Groups Pages
cofmsg_flow_mod.h
1 /*
2  * cofmsg_flow_mod.h
3  *
4  * Created on: 18.03.2013
5  * Author: andi
6  */
7 
8 #ifndef COFMSG_FLOW_MOD_H_
9 #define COFMSG_FLOW_MOD_H_ 1
10 
11 #include "rofl/common/openflow/messages/cofmsg.h"
12 #include "rofl/common/openflow/cofflowmod.h"
13 
14 namespace rofl {
15 namespace openflow {
16 
20 class cofmsg_flow_mod : public cofmsg {
21 public:
22 
27  uint8_t ofp_version = rofl::openflow::OFP_VERSION_UNKNOWN, uint32_t xid = 0, const cofflowmod& flowmod = cofflowmod());
28 
33  const cofmsg_flow_mod& msg);
34 
39  operator= (
40  const cofmsg_flow_mod& msg);
41 
45  virtual
46  ~cofmsg_flow_mod();
47 
52  cmemory *memarea);
53 
54 public:
55 
59  virtual void
60  reset();
61 
64  virtual void
65  validate();
66 
70  void
71  check_prerequisites() const;
72 
73 public:
74 
78  virtual void
79  set_version(uint8_t ofp_version) {
80  cofmsg::set_version(ofp_version);
81  flowmod.set_version(ofp_version);
82  };
83 
88  set_flowmod() { return flowmod; };
89 
94  get_flowmod() const { return flowmod; };
95 
96 public:
97 
101  virtual size_t
102  length() const;
103 
107  virtual void
108  pack(
109  uint8_t *buf = (uint8_t*)0, size_t buflen = 0);
110 
114  virtual void
115  unpack(
116  uint8_t *buf, size_t buflen);
117 
118 public:
119 
120  friend std::ostream&
121  operator<< (std::ostream& os, const cofmsg_flow_mod& msg) {
122  os << rofl::indent(0) << "<cofmsg_flow_mod >" << std::endl;
123  { rofl::indent i(2); os << dynamic_cast<const cofmsg&>( msg ); };
124  { rofl::indent i(4); os << msg.get_flowmod(); };
125  return os;
126  };
127 
128 private:
129 
131 };
132 
133 } // end of namespace openflow
134 } // end of namespace rofl
135 
136 #endif /* COFMSG_FLOW_MOD_H_ */
C++ abstraction for malloc'ed memory areas.
Definition: cmemory.h:44
virtual void unpack(uint8_t *buf, size_t buflen)
Definition: cofmsg_flow_mod.cc:113
virtual void reset()
Definition: cofmsg_flow_mod.cc:57
virtual void validate()
Definition: cofmsg_flow_mod.cc:123
Definition: cofmsg_flow_mod.h:20
Definition: cofflowmod.h:31
Definition: logging.h:76
virtual size_t length() const
Definition: cofmsg_flow_mod.cc:66
virtual void pack(uint8_t *buf=(uint8_t *) 0, size_t buflen=0)
Definition: cofmsg_flow_mod.cc:83
Definition: cofmsg.h:62