libhdf5からいくつかのクラスをラップして公開する、C++ を使用して Node.js モジュールを作成しようとしています。
現在、libhdf5 の 2 つのクラスに興味があります。最初のものはFile
で、hdf5 ファイルを開きます。2 つ目はGroup
で、そのファイル内のグループを表します。File オブジェクトから Group オブジェクトを取得します。
File
オブジェクトを作成し、そこから を取得しようとするコードをいくつか書きましGroup
た。Node.js モジュールをできるだけ JavaScripty にしようとしているので、コールバックを使用してグループを返したいと考えています。したがって、次のように使用されるようにモジュールをコーディングしようとしています。
var hdf5 = require('hdf5');
var file = new hdf5.File('/tmp/example.h5');
file.getGroup('foobar', function (err, group) { console.log(group); });
したがって、私のラッパーの C++ コードでは、ここに関数File
にマップする関数があり、指定された無名関数を呼び出して、エラーと新しいオブジェクト ラッパーgetGroup
を渡します。Group
これは、Node.js のドキュメントがラップされたオブジェクトのファクトリであるGroup
と示しているように思えたので、そこにある例に従ってコードをモデル化しました。
そのため、Group
ラッパーをコーディングしましたが、インスタンス化しようとして立ち往生しています。Arguments
関数パラメーターに v8 クラスを使用しないようにする方法を知るには、まだ十分な知識がありません。そのため、v8 永続コンストラクター関数に必要ないくつかのパラメーターを渡すことができないようです (これは、JS ランドではなく C++ からインスタンス化しているためです)。