2012-03-19 7 views
2

現在、ブーストシリアル化を使用してオブジェクトグラフをxmlファイルに保存しています。ライブラリは素晴らしいです、それは自動的にオブジェクトとすべてのメンバのポインタと参照を復元します。データベースにC++オブジェクトを保存するライブラリ

問題: データにランダムにアクセスする必要があります(1つのオブジェクトだけを読むか、1つのオブジェクトだけを削除する必要があります)。ブーストシリアル化のシナリオは、このようなものです:

ファイル

からすべてのオブジェクトを--load - 使用してオブジェクト

に変更 - これで再び

欠点をアーカイブするすべてのオブジェクトを書きます1つのオブジェクトだけが変更された場合は、アーカイブにそのオブジェクトだけを書きたいと思います。オブジェクトグラフ全体が巨大ではありません。

私はすべてのオブジェクトをデータベースに格納するのをサポートするライブラリを探しています。また、boostとstlの型もサポートしています。

  • ブーストマルチインデックス

  • スマートのPtr(shared_ptrの、weak_ptrを、scoped_ptrを)

  • オプション、バリアント

誰もが知っている:現在、私は、これらのブーストタイプを使用していますそのようなライブラリやそれに近いもの、あるいはこの問題を解決するための方法を知っていますか?

答えて

2

このようなことを行うことは非常に複雑です。 C++(ランタイム環境)はそれ自体について何も知らないので、あなた自身でそれをコーディングする必要があります。私のアドバイスは、グラフを別のファイルに分割し、必要なファイルのみを更新することです(これは、ブーストライブラリを使用せずに自分でシリアライズを制御する必要があることを意味します)。

1

Wt::Dbo?クラスに単一のテンプレート関数を追加することで、DboはそれらをSQLデータベースにマップします。

関連する問題