Revised OpenFlow Library  v0.6.0dev
 All Classes Files Functions Variables Friends Groups Pages
cevent.h
1 /*
2  * cvent.h
3  *
4  * Created on: 26.01.2014
5  * Author: andreas
6  */
7 
8 #ifndef CVENT_H_
9 #define CVENT_H_
10 
11 #include "rofl/common/cmemory.h"
12 #include "rofl/common/logging.h"
13 
14 namespace rofl {
15 
20 class cevent {
21 public:
22 
26  cevent() :
27  cmd(-1)
28  {};
29 
33  cevent(
34  int cmd) :
35  cmd(cmd)
36  {};
37 
41  cevent(
42  int cmd,
43  const cmemory& opaque) :
44  cmd(cmd), opaque(opaque)
45  {};
46 
50  virtual
51  ~cevent() {};
52 
56  cevent(cevent const& ioctl) {
57  *this = ioctl;
58  };
59 
63  cevent&
64  operator= (cevent const& event) {
65  if (this == &event)
66  return *this;
67  cmd = event.cmd;
68  opaque = event.opaque;
69  return *this;
70  };
71 
75  int
76  get_cmd() const { return cmd; };
77 
81  cmemory&
82  get_opaque() { return opaque; };
83 
84 public: // data structures
85 
86  int cmd; // command
87  cmemory opaque; // additional data
88 
89 public: // auxiliary classes
90 
92  int cmd;
93  public:
94  cevent_find_by_cmd(int __cmd) :
95  cmd(__cmd) {};
96  bool operator() (cevent const* ev) {
97  return (ev->cmd == cmd);
98  };
99  };
100 
101 public:
102  friend std::ostream&
103  operator<< (std::ostream& os, cevent const& event) {
104  os << indent(0) << "<cevent ";
105  os << "cmd:" << event.cmd << " ";
106  os << ">" << std::endl;
107  indent i(2);
108  os << event.opaque;
109  return os;
110  };
111 };
112 
113 
114 };
115 
116 #endif /* CVENT_H_ */
C++ abstraction for malloc'ed memory areas.
Definition: cmemory.h:44
Single event used internally by class crofl::cioloop.
Definition: cevent.h:20
Definition: logging.h:76
Definition: cevent.h:91