1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
QOF - Query Object Framework
----------------------------
April 2004
Breif Description:
------------------
QOF - Query Object Framework is a library for adding a query engine
to C applications. An SQL database is not needed; any collection
of C/C++ objects can act as 'tables' which can be 'joined' using
an SQL-like programming interface.
Long Description:
-----------------
QOF is an offshoot of the GnuCash engine, consisting of those pieces
unrelated to accounting. The Query Engine allows C/C++ applications
to treat random collections of objects as if they were SQL tables,
and perform table-join type queries across them. In addition, the
query engine can be backed by an actual database, so that instances
of local objects can act as a 'cache' to a much larger SQL database.
QOF also includes other utilities from GnuCash:
o Key-Value Pair trees (KVP aka slots and frames), for providing
extensibility by associating arbitrary-format data with an object,
using a URL-like identifier.
o Universally-unique 128-bit ID support, so that an instance of an
object can be obtained from its unique identifier, thus simplifying
associations, cross-network operation, etc.
o Rational Number Support, providing exact math for working with
money or prices or other quantities.
o Miscellaneous date & time utilities.
o Program tracing infrastructure; handing for tracing/debugging
complex applications.
The system consists of 15 KLOC of C code that has been ported to many
Unixes, including Mac OS X. Although this code is in production use
in stable versions of GnuCash, the split-off into QOF is recent and
still under some flux in order to flesh it out. In particular, the
subroutine naming convention is highly inconsistent.
Examples:
--------
Example programs showing usage can be found in the "examples" subdirectory
Documentation:
--------------
The QOF documentation is embedded mostly in the header files. You
can build an html version of the documentation by installing the
'doxygen' package, and then 'cd doc; make doc'. Skim the doc/README
file for more info.
Linking/Building
----------------
This version of QOF uses the 'pkg' system of managing include files
and libraries. To compile and link your program against QOF, include
the following directives in your Makefile:
INCLUDES += `pkg-config qof-0 --cflags`
LIBS += `pkg-config qof-0 --libs`
This will automatically supply the correct paths to include files and
libraries for your application.
------------------------- END OF DOCUMENT -------------------------
|