S.F.Tracker(54)

公開:2005-07-08 07:12
更新:2020-02-15 04:36
カテゴリ:sftracker,windows,audio,tracker

boost::serializationを使用して、ドライバコンフィグを保存しようとしているが、これがうまくいかない。boost::serializationが高機能すぎるため、ライブラリが余計なお世話をするのである。

boost::serializationは「現在のオブジェクトの状態保存し、読み込み時に再構築する」というコンセプトのライブラリである。適切な実装をすれば、ポインタで保持しているクラスの状態まで保存でき、その後、完璧に再構築できる。

ドライバの場合、前回起動時と同じドライバが使えるとは限らない。ハードウェアはいつでも入れ替えできるからである。
そのためドライバのコンフィグレーションは、

・毎回新たにドライバ情報を実際のPCの状態に基づいて再構築する
・再構築したドライバ情報中に過去に設定したドライバがあれば、ユーザが設定したパラメータを再セットする

という手順を踏むことになる。

よって、boost::serializationが行う再構築の部分は必要なく、ユーザが設定したパラメータ情報のみ読み込めればよいのである。

ライブラリの使いどころを誤っているよい例かもしれない。