uvw  1.3.0
prepare.hpp
1 #pragma once
2 
3 
4 #include <utility>
5 #include <memory>
6 #include <uv.h>
7 #include "handle.hpp"
8 #include "loop.hpp"
9 
10 
11 namespace uvw {
12 
13 
19 struct PrepareEvent {};
20 
21 
30 class PrepareHandle final: public Handle<PrepareHandle, uv_prepare_t> {
31  static void startCallback(uv_prepare_t *handle) {
32  PrepareHandle &prepare = *(static_cast<PrepareHandle*>(handle->data));
33  prepare.publish(PrepareEvent{});
34  }
35 
36 public:
37  using Handle::Handle;
38 
43  bool init() {
44  return initialize(&uv_prepare_init);
45  }
46 
55  void start() {
56  invoke(&uv_prepare_start, get(), &startCallback);
57  }
58 
62  void stop() {
63  invoke(&uv_prepare_stop, get());
64  }
65 };
66 
67 
68 }
Handle base class.
Definition: handle.hpp:29
The PrepareHandle handle.
Definition: prepare.hpp:30
void stop()
Stops the handle.
Definition: prepare.hpp:62
PrepareEvent event.
Definition: prepare.hpp:19
void start()
Starts the handle.
Definition: prepare.hpp:55
bool init()
Initializes the handle.
Definition: prepare.hpp:43
uvw default namespace.
Definition: async.hpp:11