=========================
arms_dump_state()
=========================

関数
----

.. c:function:: int arms_dump_state(arms_context_t *ctx, char *state, size_t size)

呼び出し方向
------------

アプリケーション->libarms

目的
----
内部ステートを指定されたメモリ領域に書き出す。

説明
----
:c:func:`arms_pull` によりLS およびRS アクセスに成功した後に呼び出すこと。
書き出したメモリ内容を不揮発性メモリに保存するなどしておき、
次回起動後に :c:func:`arms_restore_state` を用いて内部ステートを復帰
させることで、LS アクセスを省いてPush 可能状態に移行することが
可能となる。

引数
----

:c:type:`arms_context_t` :c:data:`*ctx`
  内部ステートを保持するコンテキスト構造体ポインタ。
  :c:func:`arms_init` により取得したポインタをそのまま指定する。
:c:type:`char` :c:data:`*state`
  内部ステート保存領域のアドレス。 :c:func:`arms_size_of_state` で得られるサイズ以上の保存領域を用意する必要がある。
:c:type:`size_t` :c:data:`size`
  内部ステート保存領域のサイズ。

返り値
------

:c:macro:`0`
   正常終了
:c:macro:`非0`
   異常終了( :ref:`error-code-label` 参照) 
     :c:macro:`ARMS_ESIZE`
       サイズが不足している

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

不可

ヒストリ
--------

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