]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. | |
3 | ** See ../LICENSE for license information. | |
4 | ** | |
5 | */ | |
6 | /* | |
7 | ** fileIdList.h | |
8 | */ | |
9 | ||
10 | # ifndef FILEIDLIST_H | |
11 | # define FILEIDLIST_H | |
12 | ||
13 | /*@access ctype fileId ctypeList@*/ | |
14 | /*@+allmacros@*/ | |
15 | ||
16 | abst_typedef /*@null@*/ ctypeList fileIdList; | |
17 | ||
18 | extern /*@falsenull@*/ bool fileIdList_isDefined (fileIdList p_f); | |
19 | # define fileIdList_isDefined(f) (ctypeList_isDefined (f)) | |
20 | ||
21 | /*@iter fileIdList_elements (sef fileIdList x, yield fileId el); @*/ | |
22 | # define fileIdList_elements(x, m_el) \ | |
23 | if (fileIdList_isDefined (x)) \ | |
24 | { int m_ind; fileId *m_elements = &((x)->elements[0]); \ | |
25 | for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ | |
26 | { fileId m_el = *(m_elements++); | |
27 | ||
28 | # define end_fileIdList_elements }} | |
29 | ||
30 | extern fileIdList fileIdList_create (void); | |
31 | # define fileIdList_create() ctypeList_new() | |
32 | ||
33 | extern bool fileIdList_isEmpty (/*@sef@*/ fileIdList p_f) /*@*/ ; | |
34 | ||
35 | extern fileIdList fileIdList_append (/*@only@*/ fileIdList p_f1, /*@temp@*/ fileIdList p_f2) | |
36 | /*@modifies p_f1@*/ ; | |
37 | # define fileIdList_append(f1,f2) ctypeList_append((ctypeList)(f1), (ctypeList)(f2)) | |
38 | ||
39 | extern void fileIdList_add (fileIdList p_f, fileId p_fid) /*@modifies p_f@*/; | |
40 | # define fileIdList_add(f, el) ctypeList_addh((ctypeList)(f), (ctype)(el)) | |
41 | ||
42 | extern int fileIdList_size (/*@sef@*/ fileIdList p_f); | |
43 | # define fileIdList_size(ft) ctypeList_size((ctypeList)(ft)) | |
44 | ||
45 | extern void fileIdList_free (/*@only@*/ fileIdList p_f) /*@modifies p_f@*/; | |
46 | # define fileIdList_free(ft) ctypeList_free((ctypeList)(ft)) | |
47 | ||
48 | # define fileIdList_isEmpty(f) (fileIdList_size (f) == 0) | |
49 | /*@noaccess ctype fileId ctypeList@*/ | |
50 | ||
51 | # else | |
52 | # error "Multiple include" | |
53 | # endif | |
54 | ||
55 |