
Dear List, I use Boost.Serialization in my projects. It's very useful, powerful, and cool. But it doesn't meet some of my data persistence needs. Thus, I present the C++ library for transparent object-relational mapping to SQLite3. It works similar to Java Hibernate, and its API is inspired by Boost.Serialization. http://code.google.com/p/hiberlite/ I hope some of you will find this work useful. Comments on design, usability, proposals, and contributions will be highly appreciated! Yours sincerely, Pavlo Korzhyk skype: pavlo.korzhyk ICQ#155870780

Pavlo Korzhyk wrote:
Dear List,
I use Boost.Serialization in my projects. It's very useful, powerful, and cool. But it doesn't meet some of my data persistence needs. Thus, I present the C++ library for transparent object-relational mapping to SQLite3.
It works similar to Java Hibernate, and its API is inspired by Boost.Serialization.
http://code.google.com/p/hiberlite/
I hope some of you will find this work useful. Comments on design, usability, proposals, and contributions will be highly appreciated!
Nice work, I did a quick test, works out of the box and looks easy. One offtopic suggestion, put all files in your zipfile into a subdirectory. Greetings, Falco

That looks very useful. One small observation. It's released under a GPL V3 license. I'm not sure if that has the runtime exception that V2 has, which would mean that any app that uses it is also GPL V3. Damien -----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Falco Hirschenberger Sent: Thursday, March 27, 2008 9:31 AM To: boost-users@lists.boost.org Subject: Re: [Boost-users] object relational mapping library Pavlo Korzhyk wrote:
Dear List,
I use Boost.Serialization in my projects. It's very useful, powerful, and cool. But it doesn't meet some of my data persistence needs. Thus, I present the C++ library for transparent object-relational mapping to SQLite3.
It works similar to Java Hibernate, and its API is inspired by Boost.Serialization.
http://code.google.com/p/hiberlite/
I hope some of you will find this work useful. Comments on design, usability, proposals, and contributions will be highly appreciated!
Nice work, I did a quick test, works out of the box and looks easy. One offtopic suggestion, put all files in your zipfile into a subdirectory. Greetings, Falco _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

On Tue, 25 Mar 2008 15:24:12 +0200, Pavlo Korzhyk wrote:
I use Boost.Serialization in my projects. It's very useful, powerful, and cool. But it doesn't meet some of my data persistence needs. Thus, I present the C++ library for transparent object-relational mapping to SQLite3.
Very cool indeed! However, from a quick glance at your tutorial, it seems you could have folded this back into Boost.Serialization by writing a sqlite3 archive. Is there some reason you chose not to do this? -- Sohail Somani http://uint32t.blogspot.com

Hi, I've got some objects which are stored in a DB that are being used in a multi-threaded application. I'm trying to avoid loading the same object from the db and would like the added bonus of changes made by one thread being instantly available to all others (with suitable mutex protection provided during a change but they are predominantly read-only) I've decided that shared_ptrs fit the bill and the following code will do the job but, never having used them before I was hoping some one could have a look to make sure I'm not mis-understanding the reason for shared_ptrs or missing a simpler method to achieve the same results. Thanks in advance, Patrick class dummy { public: dummy( std::string& id ) : m_id( id ){/*load the object from db*/} virtual ~dummy(){} const std::string& objectid(){ return m_id; } private: std::string m_id; }; typedef boost::shared_ptr<dummy> ListObjectSharedPtr; dummy& getOrLoadObject( std::string &id )//should I be returning a ref? { static std::list<ListObjectSharedPtr> objectlist; for( std::list<ListObjectSharedPtr>::iterator it = objectlist.begin(); it != objectlist.end(); ++it ) { if( it->get()->objectid() == id ) return *it->get(); if( it->use_count() == 0 )//should this be == 1 as the object in //the list is always present? { objectlist.erase( it ); --it; } } ListObjectSharedPtr lo( new dummy( id ) ); objectlist.push_back( lo ); return *objectlist.back().get(); } ****************************************************************************** "This message and any attachments are solely for the intended recipient and may contain confidential and privileged information. If you are not the intended recipient, any disclosure, copying, use, or distribution of the information included in this message and any attachments is prohibited. If you have received this communication in error, please notify us by reply e-mail and immediately and permanently delete this message and any attachments. Thank you." Interactive Transaction Solutions Ltd (2473364 England) Registered Office: Systems House, Station Approach Emsworth PO10 7PW ********************************************************************** Ce message �lectronique contient des informations confidentielles � l'usage unique des destinataires indiqu�s, personnes physiques ou morales. Si vous n'�tes pas le destinataire voulu, toute divulgation, copie, ou diffusion ou toute autre utilisation de ces informations, est interdite. Si vous avez re�u ce message �lectronique par erreur, nous vous remercions d'en avertir son exp�diteur imm�diatement par email et de d�truire ce message ainsi que les �l�ments attach�s. Interactive transaction Solutions SAS- France (RCS Pontoise : 489 397 877) Si�ge social : Parc Saint Christophe, 10, Avenue de l�Entreprise 95865 Cergy-Pontoise Cedex ______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________

Patrick Loney:
I've got some objects which are stored in a DB that are being used in a multi-threaded application. I'm trying to avoid loading the same object from the db and would like the added bonus of changes made by one thread being instantly available to all others (with suitable mutex protection provided during a change but they are predominantly read-only)
...
The shared_ptr portion is easy: you can use a map

Thank you Peter, that is lovely code. I'm new to the STL as well as
boost so being reminded about things like map is really useful.
static map
participants (6)
-
Damien Hocking
-
Falco Hirschenberger
-
Patrick Loney
-
Pavlo Korzhyk
-
Peter Dimov
-
Sohail Somani