Protocol Buffers を使う
XML は便利だけど,機能過多で使いにくいと思うことがあります.他にも,細かい情報を大量に詰め込むとファイルサイズが途端に大きくなるとか,効率が悪いとか,一部の文字はエンコードしないと格納できないとか,(利点も多いのですが)欠点もたくさんあると思います.使いどころ次第なのですが….
今回は,サイズが大きすぎてどうせメモリ上に展開できないとか,細かい情報をたくさん付け足す予定があるとか,いろいろと理由があって XML を使いたくなかったので,Protocol Buffers を使ってみました.
- protobuf - Google Code
C++ からでも楽に使えて便利です.後は,入力ストリームから読みだすとき(ParseFromIstream()),ストリーム全体から一つの protocol buffer を生成しようとしてしまう罠があるので,その点だけは注意が必要だと思います.
- Techniques - Protocol Buffers - Google Code
※ 複数の protocol buffer を一つのファイルに書き込む場合,サイズも一緒に書き込んでおくなどの工夫が必要ということです.