chiark / gitweb /
cdb binding wip
[chiark-tcl.git] / cdb / cdb.tct
1 Table cdbtoplevel TopLevel_Command
2         cdb
3                 subcmd  enum(Cdb/_SubCommand, "cdb subcommand")
4                 ...     obj
5         cdb-wr
6                 subcmd  enum(CdbWr/_SubCommand, "cdb-wr subcommand")
7                 ...     obj
8
9 Table cdb Cdb_SubCommand
10         open
11                 path    string
12                 =>      iddata(&cdbtcl_databases)
13         lookup
14                 db      iddata(&cdbtcl_databases)
15                 key     obj
16                 =>      obj
17         lookup-hb
18                 db      iddata(&cdbtcl_databases)
19                 key     hb
20                 =>      hb
21         close
22                 db      iddata(&cdbtcl_databases)
23
24 Table cdbwr CdbWr_SubCommand
25         open
26                 pathb   string
27                 on_info obj
28                 =>      iddata(&cdbtcl_rwdatabases)
29                 # on_info <event> <xinfo>...:
30                 # on_info
31                 #
32                 # files:
33                 #       <pathdb>.main
34                 #       <pathb>.cdb
35                 #       <pathdb>.log
36                 #       <pathb>.tmp (might be new .main or new .cdb)
37                 # invariants:
38  fixme finish this
39  also mention file format
40  and whether cdb text format files are terminated
41                 #       .main always exists
42                 #       if .tmp exists it is irrelevant
43                 #       if .cdb exists it contains exactly the same
44                 #          as .main
45                 #       if .log exists, it _must_ be read and contents
46                 #          override values from .main or .cdb
47         create-empty
48                 pathb   string
49         lookup
50                 db      iddata(&cdbtcl_rwdatabases)
51                 key     obj
52                 =>      obj
53         lookup-hb
54                 db      iddata(&cdbtcl_rwdatabases)
55                 key     hb
56                 =>      hb
57         update
58                 db      iddata(&cdbtcl_rwdatabases)
59                 key     obj
60                 value   obj
61         update-hb
62                 db      iddata(&cdbtcl_rwdatabases)
63                 key     hb
64                 value   hb
65         update-quick
66                 db      iddata(&cdbtcl_rwdatabases)
67                 key     obj
68                 value   obj
69         update-quick-hb
70                 db      iddata(&cdbtcl_rwdatabases)
71                 key     hb
72                 value   hb
73
74         open-autolog
75                 
76
77         lookup
78                 rrtype  enum(CdbTclRRTypeInfo/, "rrtype")
79                 domain  string
80                 ...     obj
81                 =>      obj
82         synch
83                 rrtype  enum(CdbTclRRTypeInfo/, "rrtype")
84                 domain  string
85                 ...     obj
86                 =>      obj
87         asynch
88                 on_yes  obj
89                 on_no   obj
90                 on_fail obj
91                 xargs   obj
92                 rrtype  enum(CdbTclRRTypeInfo/, "rrtype")
93                 domain  string
94                 ...     obj
95                 =>      iddata(&cdbtcl_queries)
96         asynch-cancel
97                 query   iddata(&cdbtcl_queries)
98         new-resolver
99                 ...     obj
100                 =>      iddata(&cdbtcl_resolvers)
101         set-default-resolver
102                 res     iddata(&cdbtcl_resolvers)
103         destroy-resolver
104                 res     iddata(&cdbtcl_resolvers)
105
106
107
108 Type cdbresults:                cdb_answer *@
109 Init cdbresults         @=0;
110 Fini cdbresults         free(@);
111
112 Table cdbtoplevel TopLevel_Command
113         cdb
114                 subcmd  enum(Cdb/_SubCommand, "cdb subcommand")
115                 ...     obj
116