SPELL=qof VERSION=0.7.1 SOURCE=${SPELL}-${VERSION}.tar.gz SOURCE2=$SOURCE.asc SOURCE2_IGNORE=signature SOURCE_GPG=28BCB3E3.gpg:$SOURCE2:UPSTREAM_KEY SOURCE_DIRECTORY=${BUILD_DIRECTORY}/${SPELL}-${VERSION} SOURCE_URL[0]=http://downloads.sourceforge.net/sourceforge/${SPELL}/${SOURCE} SOURCE2_URL[0]=${SOURCE_URL[0]}.asc # SOURCE_GPG="gurus.gpg:${SOURCE}.sig" LICENSE=GPL WEB_SITE=http://qof.sourceforge.net/ ENTERED=20060211 KEYWORDS="database query" SHORT="Library for adding a query engine to C applications." cat << EOF 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. 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. o QofBook merge support with collision handling. o Support for partial books with references to linked objects. o XML backend available to all programs using QOF. A generic format to describe any object in XML. o Methods to convert objects between 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 being resolved but is still inconsistent. EOF