Various minor fixes for compiler/linter (other then splint itself) warnings.
[splint-patched.git] / src / Headers / valueTable.h
blobb2cded48294a186af8d9346ebccdcf5b6764fa18
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
4 */
5 /*
6 ** valueTable.h
7 */
9 /*
10 ** valueTable is a table of stateValue's.
11 ** Based on genericTable
14 # ifndef VTABLE_H
15 # define VTABLE_H
17 /*@constant null valueTable valueTable_undefined; @*/
18 # define valueTable_undefined genericTable_undefined
20 extern /*@falsewhennull@*/ bool valueTable_isDefined(valueTable) /*@*/ ;
21 # define valueTable_isDefined(p_h) (genericTable_isDefined ((genericTable) (p_h)))
23 extern /*@nullwhentrue@*/ bool valueTable_isUndefined(valueTable) /*@*/ ;
24 # define valueTable_isUndefined(p_h) (genericTable_isUndefined ((genericTable) (p_h)))
26 extern /*@only@*/ valueTable valueTable_create(int p_size);
27 # define valueTable_create(p_s) ((valueTable) genericTable_create (p_s))
29 extern void valueTable_insert (valueTable p_h,
30 /*@only@*/ cstring p_key,
31 /*@only@*/ stateValue p_value);
33 /*@access stateValue@*/
34 extern /*@null@*/ /*@dependent@*/ /*@exposed@*/ stateValue
35 valueTable_lookup (valueTable p_h, cstring p_key) /*@*/ ;
36 # define valueTable_lookup(p_h,p_key) \
37 ((stateValue) genericTable_lookup ((genericTable) (p_h), p_key))
38 /*@noaccess stateValue@*/
40 extern bool valueTable_contains (valueTable p_h, cstring p_key) /*@*/ ;
41 # define valueTable_contains(p_h,p_key) \
42 (stateValue_isDefined (valueTable_lookup (p_h, p_key)))
44 extern void valueTable_free (/*@only@*/ valueTable p_h);
45 # define valueTable_free(p_h) (genericTable_free ((genericTable) (p_h)))
47 extern /*@only@*/ cstring valueTable_unparse (valueTable p_h) /*@*/ ;
49 extern void valueTable_update (valueTable p_h, cstring p_key, /*@owned@*/ stateValue p_newval) /*@modifies p_h@*/ ;
51 extern /*@only@*/ valueTable valueTable_copy (valueTable p_s) ;
53 /*@iter valueTable_elements (sef valueTable p_g, yield exposed cstring m_key, yield exposed stateValue m_el)@*/
55 # define valueTable_elements(p_g, m_key, m_el) genericTable_elements (p_g, m_key, m_el)
56 # define end_valueTable_elements end_genericTable_elements
58 extern int valueTable_size (valueTable p_h) /*@*/ ;
59 # define valueTable_size(p_h) (genericTable_size(p_h))
62 # else
63 # error "Multiple include"
64 # endif