プログラミングインタフェース

抽出

この節で説明するインタフェースを使用すると、カウンタからアプリケーションにデータを返すことができます。カウンタデータは、cpc_buf_t という不透明なデータ構造体内にあります。このデータ構造体は、バインドされたセットが使用しているカウンタの状態についてのスナップショットを取得し、次の情報を含みます。

cpc_buf_t *cpc_buf_create(cpc_t *cpc, cpc_set_t *set);
int cpc_buf_destroy(cpc_t *cpc, cpc_buf_t *buf);
int cpc_set_sample(cpc_t *cpc, cpc_set_t *set, cpc_buf_t *buf);

cpc_buf_create() 関数は、 cpc_set_t で指定されたセットからデータを格納するバッファーを作成します。cpc_buf_destroy() 関数は、指定した cpc_buf_t に関連付けられたメモリーを解放します。cpc_buf_sample() 関数は、指定されたセットの代わりにカウントしているカウンタのスナップショットを取得します。cpc_buf_sample() 関数を呼び出す前に、指定されたセットはあらかじめバインドされ、バッファーが作成されている必要があります。

バッファーへの抽出では、そのセットに関連付けられた要求の事前設定を更新しません。cpc_buf_sample() 関数を使ってバッファーが抽出され、次にバインド解除してから再度バインドすると、cpc_set_add_request() 関数の元の呼び出し内の要求の事前設定からカウンタが開始します。