« domU の orca サーバを ubuntu 16.04 にアップグレード | トップページ | NetBeans から IntelliJ に移行 »

2018年1月25日 (木)

編集中カルテの自動一時保存機能

その時,突然画面から書きかけのカルテが消えた。直前まであったはずのカルテウインドウは忽然と姿を消し,デスクトップには紅葉に映えるシエラネバダ山脈 - High Sierra - の美しい景色が広がっていた。OpenDolphin の礎たる Java VM が何の託ち言も残さず突然落ちたのだ。こんな悲劇が現実に起こり得て,しかも,まさに今,実際に目の前で起きたのだと,そう認識するまでにやや数秒を要した。

泣きながらカルテを入力し直し,そして,このような悲劇を2度と繰り返すことがあってはならない,その強い思いから,編集中カルテを 1秒ごとに一時ファイルとしてローカルディスクに保存する機能 Autosave を付けた。

Autosave は 1秒ごとに KarteEditor の dirty 状態をチェックし,dirty だった場合,KartePaneDumper_2 でカルテ内容を dump して AutosaveModel を作り,さらに json 化してローカルの一時ファイルに保存する。正常にカルテ編集が終了すれば一時ファイルは削除されるが,Java VM が落ちたりした場合は一時ファイルが残る。ChartImpl 立ち上げ時に一時ファイルをチェックして,もし一時ファイルがあれば DocumentModel を復元して KarteEditor に渡し,カルテ編集中状態を回復する。

Karte

バックグランドで動作し,保存にかかる時間は数ミリ秒,シェーマの encode があっても 50ミリ秒程度以下で,パフォーマンスにはほとんど影響なかった。

がんばってプログラムしたが,実際にはこの機能が使われる日が来ないことを祈りたい。

« domU の orca サーバを ubuntu 16.04 にアップグレード | トップページ | NetBeans から IntelliJ に移行 »

OpenDolphin」カテゴリの記事