IOPC - Implementation of Object Persistency in C++

Library and tools for easy development of persistent classes in C++. Current version stores classes' data in Oracle DB.

Library (iopc_lib) and two tools (iopc_sp and iopc_dbsc) that make creation of an application, that uses persistent objects really easy. The persistent classes are defined in pure C++, they only need to be inherited from a class from library. Objects' data are stored in relational database - in current version only Oracle DBMS is supported but library is easily entensible.

All necessary information about classes' attributes are received after preprocessing of source code using iopc_sp tool. It parses C++ source, adds some necessary code to it and creates an XML file describing objects and mapping of their attributes to relational DB. This tool also calls compiler, so it is used from user point of view as a compiler. User can change the XML mapping file to store the data in DB not in the default way.

Second tool, iopc_dbsc, is used to create CREATE / DROP / EXPLAIN PLAN scripts from the XML mapping file.

The library iopc_lib provides classes used by the generated code and need to be linked into the application. It also provides a lot of additional features, but to use the persistent objects, user needs to learn only a small piece of library's API.

IOPC is designed to support more operating systems, currently there's a version for Microsoft Windows that uses MSVC 6.0 and another version for Linux that uses gcc.

This project I created as my diploma thesis in 2004 and it works as expected. It is based on an older and less user friendly persistency library POLiTe made by Mgr. Michal Kopecký as part of his dissertation. I don't have any time to continue the development of IOPC, that's why I placed it here to make it available to others...

IOPC is distributed under the terms of GNU General Public License version 2. It uses OpenC++ C++ parser, Xerces XML parser, STLport, GC garbage collector and StdString class.

IOPC resources:

  1. Brief guide for installation and use of IOPC persistency library / tools - in English and in Czech.
  2. Text of the diploma thesis - in Czech only. (May be I will translate the most useful parts of it to English if there are enough people who are interested in details about mapping and so on.)
  3. HTML version of IOPC doxygen documentation (available also as zipped .chm file on file release page - see below).
  4. Sources, binaries, documentation, examples etc. can be downloaded from download page.

IOPC and these pages were made by Mgr. Josef Troch from Czech Republic. Logo

Last changes: December 12th, 2005