X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=cdb%2Fcdb.tct;h=889e72aab507769c87334a5cf2aea7ddd8b23906;hp=a7d22b468cb3ccef22131fb14e9fa2271fc877ff;hb=a3466b322998a623a15907a5c3520b4f30d1c050;hpb=602f89cabd45c343f6adb4b788d26d316f5be47b diff --git a/cdb/cdb.tct b/cdb/cdb.tct index a7d22b4..889e72a 100644 --- a/cdb/cdb.tct +++ b/cdb/cdb.tct @@ -1,10 +1,25 @@ +# cdb, cdb-wr - Tcl bindings for tinycdb and a journalling write extension +# Copyright 2006-2012 Ian Jackson +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this library; if not, see . + + Table *cdbtoplevel TopLevel_Command cdb - subcmd enum(Cdb/_SubCommand, "cdb subcommand") - ... obj + dispatch(Cdb/_SubCommand, "cdb subcommand") cdb-wr - subcmd enum(Cdbwr/_SubCommand, "cdb-wr subcommand") - ... obj + dispatch(Cdbwr/_SubCommand, "cdb-wr subcommand") Table cdb Cdb_SubCommand open @@ -30,7 +45,7 @@ Table cdbwr Cdbwr_SubCommand # .main # .lock # .cdb - # .log + # .jrn # .tmp (might be new .main or new .cdb) # invariants: # .lock is an empty file @@ -40,23 +55,23 @@ Table cdbwr Cdbwr_SubCommand # .cdb is a cdb database containing data # equivalent to and at least as recent as .main # (maybe not identical, because .cdb may - # have been updated with data from .log but - # .main not yet); if .log does not exist then + # have been updated with data from .jrn but + # .main not yet); if .jrn does not exist then # they are identical) # .cdb may not exist; in which case it is to # be treated as if it existed and was empty # but this is maximally early (so main must # exist and be empty since .main is never # newer than .cdb) - # if .log exists, it is a cdb native + # if .jrn exists, it is a cdb native # text file _without the trailing newline_; # its contents override values from .main or .cdb # if .main.tmp or .cdb.tmp exists it is irrelevant - # zero length values mean record is deleted (in .log only; + # zero length values mean record is deleted (in .jrn only; # forbidden elsewhere) # while db is open: # .lock is locked - # .log and open hash table contain same info + # .jrn and open hash table contain same info open 0 pathb string on_info obj