]>
Commit | Line | Data |
---|---|---|
28bf4b0b | 1 | /* |
c0de361f | 2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003. |
28bf4b0b | 3 | ** See ../LICENSE for license information. |
4 | */ | |
5 | /* | |
6 | ** valueMatrix.h | |
7 | */ | |
8 | ||
9 | /* | |
10 | ** key -> (int x int -> int x cstring) | |
11 | ** e.g., "null" -> null x notnull -> error x "attempt to ..." | |
12 | */ | |
13 | ||
14 | # ifndef VALUEMATRIX_H | |
15 | # define VALUEMATRIX_H | |
16 | ||
17 | /* in forward types: | |
18 | abst_typedef genericTable valueMatrix; | |
19 | */ | |
20 | ||
21 | /*@constant null valueMatrix valueMatrix_undefined; @*/ | |
22 | # define valueMatrix_undefined genericTable_undefined | |
23 | ||
0e41eb0e | 24 | extern /*@falsewhennull@*/ bool valueMatrix_isDefined(valueMatrix) /*@*/ ; |
28bf4b0b | 25 | # define valueMatrix_isDefined(p_h) (genericTable_isDefined ((genericTable) (p_h))) |
26 | ||
0e41eb0e | 27 | extern /*@nullwhentrue@*/ bool valueMatrix_isUndefined(valueMatrix) /*@*/ ; |
28bf4b0b | 28 | # define valueMatrix_isUndefined(p_h) (genericTable_isDefined ((genericTable) (p_h))) |
29 | ||
30 | extern /*@only@*/ valueMatrix valueMatrix_create(int p_size); | |
31 | # define valueMatrix_create(p_s) ((valueMatrix) genericTable_create (p_s)) | |
32 | ||
33 | extern void valueMatrix_insert (valueMatrix p_h, /*@dependent@*/ cstring p_key, | |
34 | /*@only@*/ stateCombinationTable p_value); | |
35 | ||
36 | # define valueMatrix_insert(p_h,p_key,p_value) \ | |
37 | (genericTable_insert ((valueMatrxi) (p_h), p_key, (void *) (p_value))) | |
38 | ||
39 | extern /*@null@*/ /*@dependent@*/ /*@exposed@*/ stateCombinationTable valueMatrix_lookup (valueMatrix p_h, cstring p_key) /*@*/ ; | |
40 | # define valueMatrix_lookup(p_h,p_key) \ | |
41 | ((stateCombinationTable) genericTable_lookup ((genericTable) (p_h), p_key)) | |
42 | ||
43 | extern /*@unused@*/ /*@only@*/ cstring valueMatrix_stats(valueMatrix p_h); | |
44 | # define valueMatrix_stats(p_h) genericTable_stats ((genericTable) (p_h)) | |
45 | ||
46 | extern void valueMatrix_free (/*@only@*/ valueMatrix p_h); | |
47 | # define valueMatrix_free(p_h) (genericTable_free ((genericTable) (p_h))) | |
48 | ||
49 | extern void valueMatrix_remove (valueMatrix p_h, cstring p_key) /*@modifies p_h@*/ ; | |
50 | # define valueMatrix_remove(p_h,p_key) (genericTable_remove ((genericTable) (p_h), p_key)) | |
51 | ||
52 | /*@iter valueMatrix_elements (sef valueMatrix p_g, yield exposed cstring m_key, yield exposed stateCombinationTable m_el)@*/ | |
53 | ||
54 | # define valueMatrix_elements(p_g,m_key,m_el) genericTable_elements((genericTable) (p_g), m_key, m_el) | |
55 | # define end_valueMatrix_elements end_genericTable_elements | |
56 | ||
57 | extern int valueMatrix_size (valueMatrix p_h); | |
58 | # define valueMatrix_size(p_h) (genericTable_size(p_h)) | |
59 | ||
60 | # else | |
61 | # error "Multiple include" | |
62 | # endif | |
63 | ||
64 | ||
65 | ||
66 |