モジュールの操作を制御するさまざまなパラメーターをユーザーが取得および設定できるようにするAPIに出くわすことがよくあります。私は今、さらに別のプロパティAPIを作成することを考えていますが、車輪の再発明をしたくありません。
以下は、典型的な基本的なクライアントコードです。
setInt("bitrate", 1000);
setEnum("mode", MODE_FAST);
setStr("output file", "music.mp3");
多くの場合、設定できるパラメータは数十あり、そのようなプロパティセットは継続的に開発されています。
一部のAPIは他のAPIよりもスマートで、より高度な機能は次のとおりです。
- プロパティの階層的なグループ化
- プロパティの列挙
- 最小値と最大値が適用された数値パラメータ
- デフォルトのパラメータ値
- 有効、無効、または読み取り専用の設定
- 動的パラメータ-他のパラメータの状態に応じて、表示、非表示、最小/最大設定、有効化、無効化、または読み取り専用の設定。
- テキスト名ではなくUUIDキーを介してアクセスされるプロパティ
上記のサンプルコードのCスタイルのアクセサー以外に、次のようなフレームワークに出くわしました。
- ファイルへのプロパティの読み取り/書き込み(XMLなど)
- Windowsレジストリへの設定の読み取り/書き込み
- 次のようなシステムプロパティAPIとのインターフェース
IPersistPropertyBag
- ツリービューやリストなど、デフォルトのダムGUI実装があります
- 最小/最大/有効状態に適したGUI拡張機能を使用して、GUIコードの繰り返しを減らします。
上記のすべてのフレームワークを提供する、うまく設計された公共図書館を見つけたいと思いますが、これまでのところ空白になっています。Boost.PropertyTreeを知っていますが、実際にはスケルトンにすぎません。知っておくべき他のポータブルプロパティAPIフレームワークはありますか?