source: gs2-extensions/tdb/trunk/perllib/DBDrivers/Readme.txt@ 30347

Last change on this file since 30347 was 30347, checked in by jmt12, 8 years ago

Continuing to refactor driver code to move shared code up to parent classes. Have all the basic drivers done...

File size: 1.7 KB
Line 
1===== DBDriver =====
2
3Note that there are a couple of Drivers that could be further separated to
4have even better OO, but I started to get bogged down in multiple inheritence
5problems so I left them as is for now. For instance, separating PipedExecutable
6support from the 70HyphenFormat driver would increase flexibility, but then it
7becomes tricky to say which should inherit from which (in a single inheritence)
8or what order methods should be resolved (in multiple inheritence).
9
10==== Inheritence Overview ====
11
12 * BaseDBDriver - superclass of all drivers. Some shared utility methods
13 including support for persistent connections (ala TDB).
14 Thus this is a candidate for separating out the the
15 PersistentConnectionsDriver.
16 * 70HyphenFormat - drivers that write and read their data via pipes to
17 external executables. Data is in simple Greenstone
18 archive form (i.e. key/value pairs and separated by
19 seventy hyphens) - this is a candidate for further
20 separating out a PipedExecutableDriver.
21 * GDBM - makes use of GDBM utils (txt2db, db2txt etc)
22 * GDBMTXTGZ - makes use of gzip (for later use with GDBM)
23 * JDBM - makes use of jdbm.jar and JDBMWrapper.jar
24 * TDB - makes use of TDB utils (txt2tdb, tdb2txt etc)
25 * SQLDrivers - drivers that read/write their data using SQL commands
26 * SQLITE - uses calls to SQLite3 via the command line
27 * ServerDrivers - drivers that act as clients to externally running servers
28 * GDBMS - makes use of a custom GDBM server
29 * TDBS - makes use of a custom TDB server
30 * MergableDrivers - ???
31 * TDBC - ??? Knows how to merge several TDB files into one.
Note: See TracBrowser for help on using the repository browser.