Build TOP Environments

開発者向け

共通

同期と非同期
提供されるクラス
永続とワンタイム接続

k2hdkcクラス

k2hdkc::Init()
k2hdkc::Clean()
k2hdkc::IsPermanent()
k2hdkc::GetValue()
k2hdkc::GetSubkeys()
k2hdkc::GetAttrs()
k2hdkc::SetValue()
k2hdkc::SetSubkeys()
k2hdkc::SetAll()
k2hdkc::Remove()
k2hdkc::Rename()
k2hdkc::QueuePush()
k2hdkc::QueuePop()
k2hdkc::QueueRemove()
k2hdkc::CasInit()
k2hdkc::CasGet()
k2hdkc::CasSet()
k2hdkc::CasIncDec()
k2hdkc::PrintVersion()


共通

同期と非同期

K2HDKC Node.js アドオンライブラリのクラスのメソッドは、同期処理とCallback関数を指定できる非同期処理をサポートしています。
非同期処理をサポートしているメソッドは、callback関数の引数を受け取ることができます。
また、非同期処理としてononXXXXXでイベントハンドラーを指定することもできます。
callback関数もしくはイベントハンドラーの指定をすることで非同期処理を行うことができます。

callback関数の引数を指定しない場合やイベントハンドラーの指定を指定しない場合、各々のメソッドは同期処理として動作します。

提供されるクラス

K2HDKC Node.js アドオンライブラリは、k2hdkcクラスを提供します。
このクラスを使いK2HDKCへの接続とデータ操作ができます。

永続とワンタイム接続

K2HDKC Node.js アドオンライブラリを利用してK2HDKCへの接続する方法は、永続的な接続とデータ操作毎の接続(ワンタイム接続)の2つの方法が提供されています。

永続接続

K2HDKC Node.js アドオンライブラリのメインクラス(k2hdkc)オブジェクトを初期化するとき、K2HDKCへの接続を行います。
初期化以降のK2HDKCへの操作はすべてこの接続を利用します。
永続接続の方法により、K2HDKCのデータ操作毎の接続オーバーヘッドを低減できます。

ワンタイム接続(データ操作毎の接続)

K2HDKC Node.js アドオンライブラリのメインクラス(k2hdkc)オブジェクトを初期化するときにK2HDKCへ接続せず、データ操作ごとに毎回接続処理します。
データ操作ごとに毎回接続処理を行うため、メインクラス(k2hdkc)オブジェクトの使いまわしが可能です。
ワンタイム接続は、K2HDKCのデータ操作毎に接続オーバーヘッドが発生しますが、ひとつの操作処理中に別の操作を行うことができます。

同時利用

永続接続とワンタイム接続の区別は、ひとつのメインクラス(k2hdkc)オブジェクトに対してのみであり、永続接続用とワンタイム接続用のそれぞれにオブジェクトを準備することで、永続接続とワンタイム接続を同時に利用することができます。


k2hdkcクラス

K2HDKC Node.js アドオンライブラリの提供するメインクラスです。
このクラスにより、K2HDKCとの接続、データ操作を行うことができます。

クラスを生成するには以下のように指定します。

以下に、K2HDKCクラスのメソッドとその説明をします。

k2hdkc::Init()

k2hdkcオブジェクトを初期化します。
このメソッドは、k2hdkcオブジェクトを永続接続用、ワンタイム接続用のいずれかに初期化します。

書式

bool Init(String   conf = null,
          int      port = -1,
          String   cuk  = null,
          bool     auto_rejoin = false,
          bool     no_giveup_rejoin = false,
          Callback cbfunc = null
)

引数

返り値

正常終了(true)もしくは失敗(false)を返します。
Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::Clean()

k2hdkcオブジェクトの終了処理を行い、オブジェクトを破棄します。

書式

bool Clean(void)

引数

なし

返り値

常にtrueを返します。

サンプル

k2hdkc::IsPermanent()

k2hdkcオブジェクトが永続接続として初期化されているか否かを確認します。

書式

bool IsPermanent(void)

引数

なし

返り値

k2hdkcオブジェクトが永続接続として初期化されている場合は、trueを返します。それ以外はfalseを返します。

サンプル

k2hdkc::GetValue()

K2HDKCからキーおよびサブキーを指定して値を取得します。

書式

引数

返り値

同期処理の場合、正常終了したときには読み出した値を返し、エラーの場合は、nullが返されます。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

注意

本メソッドはキーとサブキーを同時に指定することができます。
通常、キーの値の読み出しであれば、キー名を指定するだけで読み出すことができます。
キーとサブキーを同時に指定するという意味は、サブキーがキーに紐付けられていることが条件となります。
もし、サブキーがキーに紐づいていない場合にはこのメソッドは値を読み出さず、エラーを返します。

k2hdkc::GetSubkeys()

K2HDKCからキーに紐付けられたサブキーのリストを取得します。

書式

引数

返り値

同期処理の場合、正常終了したときには読み出したサブキーのリストをArrayで返し、エラーの場合は、nullが返されます。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::GetAttrs()

K2HDKCからキーに設定されている属性名のリストを取得します。

書式

引数

返り値

同期処理の場合、正常終了したときには読み出した属性のリストをArrayで返し、エラーの場合は、nullが返されます。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::SetValue()

K2HDKCへキーおよびサブキーを指定して値を設定します。

書式

引数

返り値

正常終了(true)もしくは失敗(false)を返します。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::SetSubkeys()

キーに紐づくサブキーのリストを設定(上書き)、クリアします。

書式

引数

返り値

正常終了(true)もしくは失敗(false)を返します。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::SetAll()

キーに対して、値、サブキーのリストを一括で設定します。

書式

引数

返り値

正常終了(true)もしくは失敗(false)を返します。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::Remove()

キーを削除します。

書式

引数

返り値

正常終了(true)もしくは失敗(false)を返します。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::Rename()

キー名を変更します。

書式

引数

返り値

正常終了(true)もしくは失敗(false)を返します。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::QueuePush()

キューにデータをプッシュします。

書式

引数

返り値

正常終了(true)もしくは失敗(false)を返します。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::QueuePop()

キューからデータをポップします。

書式

引数

返り値

正常終了時、キューであればポップされた値を返します。KEYキューの場合にはキー名と値をセットとしたArrayを返します。
エラーが発生した場合には、nullを返します。
Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::QueueRemove()

キューからデータを削除します。

書式

引数

返り値

正常終了(true)もしくは失敗(false)を返します。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::CasInit()

CAS(Compare and Swap)としてキー、値を初期化します。

書式

引数

返り値

正常終了(true)もしくは失敗(false)を返します。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::CasGet()

CAS(Compare and Swap)のキーの値を取得します。

書式

引数

返り値

正常終了時には値(int32)を返します。キーが存在していないなどエラー発生時にはundefinedを返します。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::CasSet()

CAS(Compare and Swap)のキーに値を設定します。

書式

引数

返り値

正常終了(true)もしくは失敗(false)を返します。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::CasIncDec()

CAS(Compare and Swap)のキーの値をインクリメントもしくはデクリメントします。

書式

引数

返り値

正常終了(true)もしくは失敗(false)を返します。 Callback関数が指定されている場合には、常にtrueが返されます。

サンプル

イベントハンドラ

Callback関数を指定せず、イベントハンドラを設定して非同期処理をすることができます。
以下の2タイプ(4例)の方法で非同期処理を記述できます。

k2hdkc::PrintVersion()

K2HDKC Node.jsアドオンライブラリのバージョンを出力します。

書式

bool PrintVersion(int fd = null)

引数

返り値

正常終了(true)もしくは失敗(false)を返します。

サンプル

var k2hdkc = require('bindings')('k2hdkc');
var dkcobj = new k2hdkc();

dkcobj.PrintVersion();
Build TOP Environments