My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
PipeQ.h
Go to the documentation of this file.
1 #ifndef PIPEQ_H
2 #define PIPEQ_H
3 
11 #include "Pipe.h"
12 
13 namespace gcp {
14  namespace util {
15 
19  template<class Msg>
20  class PipeQ {
21 
22  public:
23 
27  PipeQ();
28 
32  ~PipeQ();
33 
39  void sendMsg(Msg* msg);
40 
46  void readMsg(Msg* msg);
47 
52  int fd();
53 
58  fd_set rfds();
59 
60  private:
61 
65  Pipe pipe_;
66  };
67 
73  template<class Msg>
74  void PipeQ<Msg>::sendMsg(Msg* msg)
75  {
76  pipe_.writePipe((void*) msg, sizeof(Msg), -1);
77  };
78 
84  template<class Msg>
85  void PipeQ<Msg>::readMsg(Msg* msg)
86  {
87  pipe_.readPipe((void*) msg, sizeof(Msg), -1);
88  };
89 
93  template<class Msg>
95  {
96  return pipe_.fd();
97  };
98 
102  template<class Msg>
104  {
105  return pipe_.rfds();
106  };
107 
113  template<class Msg>
115 
121  template<class Msg>
123 
124  } // End namespace util
125 } // End namespace gcp
126 
127 
128 #endif
Definition: PipeQ.h:20
void sendMsg(Msg *msg)
Definition: PipeQ.h:74
Definition: Pipe.h:42
~PipeQ()
Definition: PipeQ.h:122
int fd()
Definition: PipeQ.h:94
void readMsg(Msg *msg)
Definition: PipeQ.h:85
PipeQ()
Definition: PipeQ.h:114
fd_set rfds()
Definition: PipeQ.h:103