ODB – C++ Object-Relational Mapping (ORM)
サーバが落ちたり,再起動したら,世界の時間が巻き戻ってしまうのは困る。メモリ上のオブジェクトをどうハードディスクに保存するか探っていたら,ODBを見つけた。
gitのリポジトリに追加して,コンパイル。サードパーティのライブラリも全てソースから保持していく。gcc-4.5のpluginを利用しているので,gcc-4.5にアップデート。gcc-4.5-plugin-devパッケージも必要だった。libcutlも必要。libcutlをmake installしているとconfigureがうまくいかず,–with-libcutl=でソースディレクトリを指定してOKだった。
ODBを作っているCODE SYNTHESISは南アフリカの会社のようだ。XSDなども,COLLADAに対応しているので使ってみようかと思っている。南アフリカの通貨ランドにはたいへんお世話になっているので,親しみを感じる。
ODB対応のコーディングは下記が肝と分かったが,vectorの中身をname*という感じ(実際にはBHOBJECT*)にしたい。うまくDBに保存できるのだろうか。
#pragma db value class name { public: name (const std::string&, const std::string&); ... private: friend class odb::access; name (); ... }; #pragma db object class person { ... private: std::vector<name> aliases_; ... };
コメントを残す