C++ ライブラリの nodejs バインディングを作成しようとしていますが、障害にぶつかったようです。
私は C++ ライブラリへのすべての呼び出しを非同期にしようと取り組んでおり、それが私が使用している理由ですlibuv
。私は基本的にこのチュートリアルに従っています。
libuv からクラスメンバー関数を呼び出せるようにしたいuv_queue_work
。このコードを見てください -
class test {
private:
int data;
void Work(uv_work_t *req);
void After(uv_work_t *req);
public:
Handle<Value> Async(const Arguments& args) {
HandleScope scope;
Local<Function> callback = Local<Function>::Cast(args[0]);
int status = uv_queue_work(uv_default_loop(), **something**, Work, After);
assert(status == 0);
return Undefined();
}
};
Work
基本的に、関数と関数がクラスの要素でAfter
機能することを期待しています。data
ただし、これは機能しないようです。typeからへのポインタWork
とAfter
その後のポインタを型キャストしてみました。しかし、それもうまくいかないようです。void test::(*)(uv_work_t*)
void (*)(uv_work_t*)
これを回避する方法についてのヒントを教えていただけますか??