MCPcopy Create free account
hub / github.com/NodeRT/NodeRT / TokenData

Class TokenData

src/NodeRTLib/ProjectFiles/node-async.h:101–155  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

99
100 private:
101 class TokenData {
102 public:
103 static uv_async_t* NewAsyncToken() {
104 uv_async_t* asyncHandle = new uv_async_t;
105 uv_async_init(uv_default_loop(), asyncHandle, AsyncCb);
106 SetHandleData(asyncHandle->data);
107
108 return asyncHandle;
109 }
110
111 static uv_async_t* NewAsyncToken(Handle<Function> callback,
112 Handle<Value> receiver) {
113 uv_async_t* asyncHandle = NewAsyncToken();
114 SetHandleCallbackData(asyncHandle->data, callback, receiver);
115
116 return asyncHandle;
117 }
118
119 static uv_idle_t* NewIdleToken() {
120 uv_idle_t* idleHandle = new uv_idle_t;
121 uv_idle_init(uv_default_loop(), idleHandle);
122
123 SetHandleData(idleHandle->data);
124 return idleHandle;
125 }
126
127 static uv_idle_t* NewIdleToken(Handle<Function> callback,
128 Handle<Value> receiver) {
129 uv_idle_t* idleHandle = NewIdleToken();
130 SetHandleCallbackData(idleHandle->data, callback, receiver);
131
132 return idleHandle;
133 }
134
135 virtual ~TokenData() { callbackData.Reset(); }
136
137 private:
138 static void SetHandleData(void*& handleData) {
139 handleData = new TokenData();
140 }
141
142 static void SetHandleCallbackData(void* handleData,
143 Handle<Function> callback,
144 Handle<Value> receiver) {
145 TokenData* Token = static_cast<TokenData*>(handleData);
146 Token->callbackData.Reset(CreateCallbackData(callback, receiver));
147 }
148
149 TokenData() {}
150
151 Persistent<Object> callbackData;
152 std::function<void()> func;
153
154 friend Async;
155 };
156
157 public:
158 template <typename TInput, typename TResult>

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected