-
-
Notifications
You must be signed in to change notification settings - Fork 218
/
Copy pathproxy.h
54 lines (38 loc) · 1.36 KB
/
proxy.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#pragma once
#include <napi.h>
#include "./zmq_inc.h"
#include "closable.h"
#ifdef ZMQ_HAS_STEERABLE_PROXY
namespace zmq {
class Module;
class Proxy : public Napi::ObjectWrap<Proxy>, public Closable {
public:
static void Initialize(Module& module, Napi::Object& exports);
explicit Proxy(const Napi::CallbackInfo& info);
Proxy(const Proxy&) = delete;
Proxy(Proxy&&) = delete;
Proxy& operator=(const Proxy&) = delete;
Proxy& operator=(Proxy&&) = delete;
~Proxy() override;
void Close() override;
protected:
inline Napi::Value Run(const Napi::CallbackInfo& info);
inline void Pause(const Napi::CallbackInfo& info);
inline void Resume(const Napi::CallbackInfo& info);
inline void Terminate(const Napi::CallbackInfo& info);
inline Napi::Value GetFrontEnd(const Napi::CallbackInfo& info);
inline Napi::Value GetBackEnd(const Napi::CallbackInfo& info);
private:
inline void SendCommand(const char* command);
Napi::AsyncContext async_context;
Napi::ObjectReference front_ref;
Napi::ObjectReference back_ref;
Napi::ObjectReference capture_ref;
Module& module;
void* control_sub = nullptr;
void* control_pub = nullptr;
};
} // namespace zmq
static_assert(!std::is_copy_constructible_v<zmq::Proxy>, "not copyable");
static_assert(!std::is_move_constructible_v<zmq::Proxy>, "not movable");
#endif