Romic
From Projects
Relational Object Mapping In C++
Contents |
About
Romic is a library which provides a simple interface to perform database operations and to map data between database columns and class members/accessors.
Developers define a classes for each database table they want to access, extending the romic::Table base class which provides the primary database access interface. Clients may then use instances of these classes to retrieve / insert / update / delete records in the db, and perform various other operations.
romic::Table subclasses need to register columns and relationships that are present in the table they represent, as well as satisfy various requirements of the romic::Table interface. To assist in this process, and to reduce errors, libromic provides a 'romic_gen_classes' preprocessor executable to take C++ source files with special macros defining db columns and relationships, and generate the necessary code to interact w/ Romic.
The 'romic_gen_classes' script was designed to be as straightforward as possible, using simple but effective regular expressions, instead of trying to implement a full C++ language parser. 'romic_gen_classes' simply reads your source file, and outputs it in the exact same way, save substituting the romic preprocessor macros with the corresponding necessary code.
Sourceforge
https://sourceforge.net/projects/romic/
Docs
- View the Romic manual
- View the Romic API Docs
- View the libromic man page
- View the romic_gen_classes man page
- README / TODO / CHANGELOG
Help / Feedback / Patches
romic-users@lists.sourceforge.net (subscribe here)
Download
Git check it out from sourceforge.git clone git://romic.git.sourceforge.net/gitroot/romic
Download source tarball and binary rpms here
(.deb not available yet, feel free to send a patch!)
LICENSE
Romic is licensed under the AGPLv3+ with a linker-friendly-provision
TODO
See TODO/FIXMEs in the source code, and the TODO list in the manual, there is plenty there!
CONTRIBUTERS
Mohammed Morsi - Project founder / lead, mail patches to me!




