chiark / gitweb /
cdb binding wip
authorian <ian>
Tue, 10 Jan 2006 22:39:41 +0000 (22:39 +0000)
committerian <ian>
Tue, 10 Jan 2006 22:39:41 +0000 (22:39 +0000)
cdb/cdb.tct [new file with mode: 0644]

diff --git a/cdb/cdb.tct b/cdb/cdb.tct
new file mode 100644 (file)
index 0000000..9bb1fe4
--- /dev/null
@@ -0,0 +1,116 @@
+Table cdbtoplevel TopLevel_Command
+       cdb
+               subcmd  enum(Cdb/_SubCommand, "cdb subcommand")
+               ...     obj
+       cdb-wr
+               subcmd  enum(CdbWr/_SubCommand, "cdb-wr subcommand")
+               ...     obj
+
+Table cdb Cdb_SubCommand
+       open
+               path    string
+               =>      iddata(&cdbtcl_databases)
+       lookup
+               db      iddata(&cdbtcl_databases)
+               key     obj
+               =>      obj
+       lookup-hb
+               db      iddata(&cdbtcl_databases)
+               key     hb
+               =>      hb
+       close
+               db      iddata(&cdbtcl_databases)
+
+Table cdbwr CdbWr_SubCommand
+       open
+               pathb   string
+               on_info obj
+               =>      iddata(&cdbtcl_rwdatabases)
+               # on_info <event> <xinfo>...:
+               # on_info
+               #
+               # files:
+               #       <pathdb>.main
+               #       <pathb>.cdb
+               #       <pathdb>.log
+               #       <pathb>.tmp (might be new .main or new .cdb)
+               # invariants:
+ fixme finish this
+ also mention file format
+ and whether cdb text format files are terminated
+               #       .main always exists
+               #       if .tmp exists it is irrelevant
+               #       if .cdb exists it contains exactly the same
+               #          as .main
+               #       if .log exists, it _must_ be read and contents
+               #          override values from .main or .cdb
+       create-empty
+               pathb   string
+       lookup
+               db      iddata(&cdbtcl_rwdatabases)
+               key     obj
+               =>      obj
+       lookup-hb
+               db      iddata(&cdbtcl_rwdatabases)
+               key     hb
+               =>      hb
+       update
+               db      iddata(&cdbtcl_rwdatabases)
+               key     obj
+               value   obj
+       update-hb
+               db      iddata(&cdbtcl_rwdatabases)
+               key     hb
+               value   hb
+       update-quick
+               db      iddata(&cdbtcl_rwdatabases)
+               key     obj
+               value   obj
+       update-quick-hb
+               db      iddata(&cdbtcl_rwdatabases)
+               key     hb
+               value   hb
+
+       open-autolog
+               
+
+       lookup
+               rrtype  enum(CdbTclRRTypeInfo/, "rrtype")
+               domain  string
+               ...     obj
+               =>      obj
+       synch
+               rrtype  enum(CdbTclRRTypeInfo/, "rrtype")
+               domain  string
+               ...     obj
+               =>      obj
+       asynch
+               on_yes  obj
+               on_no   obj
+               on_fail obj
+               xargs   obj
+               rrtype  enum(CdbTclRRTypeInfo/, "rrtype")
+               domain  string
+               ...     obj
+               =>      iddata(&cdbtcl_queries)
+       asynch-cancel
+               query   iddata(&cdbtcl_queries)
+       new-resolver
+               ...     obj
+               =>      iddata(&cdbtcl_resolvers)
+       set-default-resolver
+               res     iddata(&cdbtcl_resolvers)
+       destroy-resolver
+               res     iddata(&cdbtcl_resolvers)
+
+
+
+Type cdbresults:               cdb_answer *@
+Init cdbresults                @=0;
+Fini cdbresults                free(@);
+
+Table cdbtoplevel TopLevel_Command
+       cdb
+               subcmd  enum(Cdb/_SubCommand, "cdb subcommand")
+               ...     obj
+