VectorNav C++ Library
event.h
1 #ifndef _VNXPLAT_EVENT_H_
2 #define _VNXPLAT_EVENT_H_
3 
4 #include "nocopy.h"
5 #include "int.h"
6 #include "export.h"
7 
8 namespace vn {
9 namespace xplat {
10 
12 class vn_proglib_DLLEXPORT Event : private util::NoCopy
13 {
14 
15 public:
16 
19  {
21  WAIT_TIMEDOUT
22  };
23 
24  // Constructors ///////////////////////////////////////////////////////////
25 
26 public:
27 
29  Event();
30 
31  ~Event();
32 
33  // Public Methods /////////////////////////////////////////////////////////
34 
35 public:
36 
40  void wait();
41 
47  WaitResult waitUs(uint32_t timeoutUs);
48 
54  WaitResult waitMs(uint32_t timeoutMs);
55 
57  void signal();
58 
59  // Private Members ////////////////////////////////////////////////////////
60 
61 private:
62 
63  // Contains internal data, mainly stuff that is required for cross-platform
64  // support.
65  struct Impl;
66  Impl *_pi;
67 
68 };
69 
70 }
71 }
72 
73 #endif
Represents a cross-platform event.
Definition: event.h:12
WaitResult
Available wait results.
Definition: event.h:18
The event was signalled.
Definition: event.h:20
Definition: mock.h:4
Identifies a derived class as being unable to be copied and prevents copy attempts.
Definition: nocopy.h:21
Definition: attitude.h:8