ONLINE_Update

   <task pointer> = ONLINE_Update( "<zip-url>", "<zip-size>", "<tmp-filename>",
                                   "<callback-download>", "<callback-unzip>", "<callback-finish>" )

   function <callback-download>(<task-pointer>, <progress>, <download-size>)
     -- <task-pointer>  呼び出した ONLINE_Update タスクのポインタ
     -- <progress>      <zip-size>から計算されたダウンロードの進捗比。0.0~1.0 までの値
     -- <download-size> ダウンロードされたデータのサイズ
   end

   function <callback-unzip>(<task-pointer>, <finished-files>, <total-files>)
     -- <task-pointer>   呼び出した ONLINE_Update タスクのポインタ
     -- <finished-files> 展開が終了した.zip中エントリの数
     -- <total-files>    現在展開中の .zip に含まれるエントリの総数
   end

   function <callback-finish>(<task-pointer>)
     -- <task-pointer>   呼び出した ONLINE_Update タスクのポインタ
   end

引数

  • <zip-url> .zip ファイルを取得するURL(例: " http://servername.net/path/update.zip")
  • <zip-size> あらかじめ判明している .zip ファイルのサイズ。巨大なファイルサイズのときに誤差が出ないよう文字列で与える(例: "456782")
  • <tmp-filename> .zip をダウンロードするテンポラリファイル名。明示的に " file://external/" 以下であることが指定されたパス名でなければならない。(例:"file://external/update.zip")。また、ダウンロード時に対応するパスが生成されているとは限らないため、事実上  file://external/ 直下でなければならない。
  • <callback-download> ダウンロード中の進捗を通知するコールバック関数名
  • <callback-unzip> .zip 展開中の進捗を通知するコールバック関数名
  • <callback-finish> 処理終了を通知するコールバック関数名

戻り値

  • <task pointer> 生成された ONLINE_Update タスクのポインタ

解説

URLで指定された .zip ファイルをダウンロードし、終了後  file://external/ 相当のパス以下に展開する。 その際、.zip ファイル中にディレクトリではなくファイルとしてサイズが0のものについては、当該パスに一致するファイルを削除する動作をする。

ダウンロード、zip展開それぞれのフェーズにおける進捗はコールバックで取得することができる。 また、ダウンロードや個々のzipエントリ展開は別スレッドで行われるため、フレーム処理をブロックしない。

zip展開フェーズが終了すると終了通知コールバックを呼び出し、そのフレームを最後に自動破棄される

コマンド

(コマンドなし)