1 /* @include enstable **********************************************************
2 **
3 ** Ensembl Table functions
4 **
5 ** @author Copyright (C) 1999 Ensembl Developers
6 ** @author Copyright (C) 2006 Michael K. Schuster
7 ** @version $Revision: 1.17 $
8 ** @modified 2009 by Alan Bleasby for incorporation into EMBOSS core
9 ** @modified $Date: 2013/02/17 13:09:10 $ by $Author: mks $
10 ** @@
11 **
12 ** This library is free software; you can redistribute it and/or
13 ** modify it under the terms of the GNU Lesser General Public
14 ** License as published by the Free Software Foundation; either
15 ** version 2.1 of the License, or (at your option) any later version.
16 **
17 ** This library is distributed in the hope that it will be useful,
18 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
19 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20 ** Lesser General Public License for more details.
21 **
22 ** You should have received a copy of the GNU Lesser General Public
23 ** License along with this library; if not, write to the Free Software
24 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
25 ** MA  02110-1301,  USA.
26 **
27 ******************************************************************************/
28 
29 #ifndef ENSTABLE_H
30 #define ENSTABLE_H
31 
32 /* ========================================================================= */
33 /* ============================= include files ============================= */
34 /* ========================================================================= */
35 
36 #include "ajax.h"
37 
38 AJ_BEGIN_DECLS
39 
40 
41 
42 
43 /* ========================================================================= */
44 /* =============================== constants =============================== */
45 /* ========================================================================= */
46 
47 
48 
49 
50 /* ========================================================================= */
51 /* ============================== public data ============================== */
52 /* ========================================================================= */
53 
54 
55 
56 
57 /* ========================================================================= */
58 /* =========================== public functions ============================ */
59 /* ========================================================================= */
60 
61 /*
62 ** Prototype definitions
63 */
64 
65 /*
66 ** AJAX Table of AJAX String key data and
67 ** generic value data.
68 */
69 
70 AjBool ensTablestrFromList(
71     AjPTable table,
72     AjPStr (*FobjectGetKey) (const void *object),
73     AjPList list);
74 
75 AjBool ensTablestrToList(AjPTable table, AjPList list);
76 
77 /*
78 ** AJAX Table of AJAX unsigned integer key data and
79 ** generic value data.
80 */
81 
82 AjBool ensTableuintFromList(
83     AjPTable table,
84     ajuint (*FobjectGetIdentifier) (const void *object),
85     AjPList list);
86 
87 AjBool ensTableuintToList(AjPTable table, AjPList list);
88 
89 /*
90 ** AJAX Table of
91 ** AJAX unsigned integer key data and
92 ** AJAX String-List value data.
93 */
94 
95 AjPTable ensTableuintliststrNewLen(ajuint size);
96 
97 void ensTableuintliststrClear(AjPTable table);
98 
99 void ensTableuintliststrDelete(AjPTable *Ptable);
100 
101 AjBool ensTableuintliststrRegister(AjPTable table,
102                                    ajuint identifier,
103                                    AjPStr str);
104 
105 /*
106 ** End of prototype definitions
107 */
108 
109 
110 
111 
112 AJ_END_DECLS
113 
114 #endif /* !ENSTABLE_H */
115