からのコールバック関数にオブジェクトを渡す、C++のクラスは、次のようになりますJSでこのクラス:私は同期コードを持って、私はAgueasに今のNode.jsの</p> <p>のための[1]アドオンを書いているC++コード
var lib = require('...');
var aug = new lib.Augeas(...);
aug.set(...);
aug.get(...);
// etc
私は非同期コードをimpelementするつもりです。
ボトルネックは、すべてまたは一部のレンズとファイルが読み込まれて解析されている間にaugeasオブジェクト(aug_init)を作成しています。だから、アイデアは非同期オブジェクト、その後、コールバック関数で作成されたJSオブジェクトを渡すaugeasを作成している:
- 純粋なCのスレッドを:augeasハンドルを取得するaug_init()、aug_load()を呼び出します。
- augeasハンドルを使用してJSオブジェクトを作成します(最初のスニペットを参照)
- 作成されたJSオブジェクトをコールバック関数に渡します。
使用方法は、次のようなことがあります:
lib.heracles(function(aug) {
if (!aug.error()) {
console.log('Hello!');
// async save:
aug.save(function(err, msg) {
console.log(msg);
});
} else {
console.log('Sad, but true :-(');
}
}
);
そして最後に、私の問題:私はargs.This()
を返しstatic Handle<Value> New(const Arguments& args);
コンストラクタ:-) C++でJSオブジェクトを作成する方法がわかりません、しかし、私はC++のコードではargs
を持っていないし、オブジェクトをラップすることもできません。
したがって、C++でJSオブジェクトを作成するにはどうすればよいですか? 、
は、[1] http://augeas.net
更新:オブジェクトテンプレートを1回作成することもできますし、FunctionTemplateを再利用することもできます。 – Igor