arms_restore_state()

関数

int arms_restore_state(arms_context_t *ctx, const char *state, size_t size)

呼び出し方向

アプリケーション->libarms

目的

指定されたメモリ領域の内容を読み込み、内部ステートを再設定する。

説明

arms_dump_state() で書き出した内容を本関数で復帰させることにより、 書き出しを実行したときの arms_pull() による内部状態を再現する。 arms_restore_state() を呼び内部状態が復帰した後に arms_pull() を呼び出すと、LS へのアクセスを省略しRS から直接コンフィグ取得を行う。 メモリ領域の内容は、必ず arms_dump_state() にて書き出された内容である必要がある。 不適切なメモリ領域を指定した場合libarms の動作は保証できない。 libarms のバージョンアップに伴い内部ステート情報の合計サイズが増加する場合があるため、 arms_restore_state() を呼び出す前に arms_size_of_state() で取得したサイズと復帰すべきメモリ領域のサイズとを比較、検証すること。 本関数がエラーにより失敗した場合、本関数呼び出し前の状態が維持されているため、そのまま arms_pull() を実行することで正常にLS からのPull 動作を実行できる。

引数

arms_context_t *ctx
内部ステートを保持するコンテキスト構造体ポインタ。 arms_init() により取得したポインタをそのまま指定する。
const char *state
内部ステート保存領域のアドレス。 arms_size_of_state() で得られるサイズ以上の保存領域を用意する必要がある。また、 arms_dump_state() により得られたデータを指すポインタである必要がある。
size_t size
内部ステート保存領域のサイズ。 arms_size_of_state() の値か、あるいはそれ以上である必要がある。

返り値

0
正常終了
非0
異常終了( エラーコード体系 参照)
ARMS_ESIZE
サイズが不足している

コールバック関数からの呼び出し

不可

ヒストリ

このAPIはVer2.12で追加された。

目次

前のトピックへ

arms_dump_state()

次のトピックへ

arms_set_md_config_size_limit()

リンク