1 /* @include ajnam *************************************************************
2 **
3 ** AJAX nam functions
4 **
5 ** Creates a hash table of initial values and allow access to this
6 ** via the routines ajNamDatabase and ajNamGetValueS.
7 **
8 ** @author Copyright (C) 1998 Ian Longden
9 ** @version $Revision: 1.49 $
10 ** @modified 2000-2011 Peter Rice
11 ** @modified $Date: 2013/01/24 15:31:46 $ by $Author: rice $
12 ** @@
13 **
14 ** This library is free software; you can redistribute it and/or
15 ** modify it under the terms of the GNU Lesser General Public
16 ** License as published by the Free Software Foundation; either
17 ** version 2.1 of the License, or (at your option) any later version.
18 **
19 ** This library is distributed in the hope that it will be useful,
20 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
21 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
22 ** Lesser General Public License for more details.
23 **
24 ** You should have received a copy of the GNU Lesser General Public
25 ** License along with this library; if not, write to the Free Software
26 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
27 ** MA  02110-1301,  USA.
28 **
29 ******************************************************************************/
30 
31 #ifndef AJNAM_H
32 #define AJNAM_H
33 
34 /* ========================================================================= */
35 /* ============================= include files ============================= */
36 /* ========================================================================= */
37 
38 #include "ajdefine.h"
39 #include "ajfile.h"
40 #include "ajquerydata.h"
41 
42 AJ_BEGIN_DECLS
43 
44 
45 
46 
47 /* ========================================================================= */
48 /* =============================== constants =============================== */
49 /* ========================================================================= */
50 
51 
52 
53 
54 #define AJMETHOD_ENTRY 1
55 #define AJMETHOD_QUERY 2
56 #define AJMETHOD_ALL   4
57 
58 
59 
60 
61 /* ========================================================================= */
62 /* ============================== public data ============================== */
63 /* ========================================================================= */
64 
65 
66 
67 
68 /*
69 ** Prototype definitions
70 */
71 
72 AjBool ajNamDatabase(const AjPStr name);
73 AjBool ajNamAliasDatabase(AjPStr *Pname);
74 AjBool ajNamServer(const AjPStr name);
75 AjBool ajNamAliasServer(AjPStr *Pname, const AjPStr server);
76 AjBool ajNamDatabaseServer(const AjPStr name, const AjPStr server);
77 AjPList ajNamDbGetAttrlist(const AjPStr name);
78 AjPList ajNamDbGetAttrlistSvr(const AjPStr name, const AjPStr svrname);
79 AjBool ajNamDbGetAttrC(const AjPStr name, const char *attribute,
80                        AjPStr *value);
81 AjBool ajNamDbGetAttrS(const AjPStr name, const AjPStr attribute,
82                        AjPStr *value);
83 AjBool ajNamDbDetails(const AjPStr name, AjPStr* type,
84                       AjBool* id, AjBool* qry, AjBool* all,
85                       AjPStr* comment, AjPStr* release,
86                       AjPStr* methods, AjPStr* defined);
87 AjBool ajNamDbDetailsSvr(const AjPStr name,const AjPStr svrname,  AjPStr* type,
88                       AjBool* id, AjBool* qry, AjBool* all,
89                       AjPStr* comment, AjPStr* release,
90                       AjPStr* methods, AjPStr* defined);
91 AjBool ajNamSvrGetAttrC(const AjPStr name, const char *attribute,
92                         AjPStr *value);
93 AjBool ajNamSvrGetAttrS(const AjPStr name, const AjPStr attribute,
94                         AjPStr *value);
95 ajuint ajNamDbGetAttrSpecialC(const AjPStr name, const char *attribute,
96                               AjPStr* value);
97 ajuint ajNamDbGetAttrSpecialS(const AjPStr name, const AjPStr attribute,
98                               AjPStr* value);
99 ajuint ajNamSvrGetAttrSpecialC(const AjPStr name, const char *attribute,
100                                AjPStr* value);
101 ajuint ajNamSvrGetAttrSpecialS(const AjPStr name, const AjPStr attribute,
102                                AjPStr* value);
103 AjPList ajNamSvrGetAttrlist(const AjPStr name);
104 AjBool ajNamSvrGetdbAttrC(const AjPStr name, const AjPStr dbname,
105                           const char *attribute,
106                           AjPStr *value);
107 AjBool ajNamSvrGetdbAttrS(const AjPStr name, const AjPStr dbname,
108                           const AjPStr attribute,
109                           AjPStr *value);
110 ajuint ajNamSvrGetdbAttrSpecialC(const AjPStr name, const AjPStr dbname,
111                                  const char *attribute,
112                                  AjPStr *value);
113 ajuint ajNamSvrGetdbAttrSpecialS(const AjPStr name, const AjPStr dbname,
114                                  const AjPStr attribute,
115                                  AjPStr *value);
116 AjBool ajNamSvrDetails(const AjPStr name, AjPStr* type, AjPStr *scope,
117                        AjBool* id, AjBool* qry, AjBool* all,
118                        AjPStr* comment, AjPStr *version,
119                        AjPStr* methods, AjPStr* defined,
120                        AjPStr* cachedirectory, AjPStr* cachefile,
121                        AjPStr* url);
122 AjBool ajNamDbGetDbalias(const AjPStr dbname, AjPStr* dbalias);
123 AjBool ajNamDbGetDbaliasTest(const AjPStr dbname, AjPStr* dbalias);
124 AjBool ajNamDbGetIndexdir(const AjPStr dbname, AjPStr* indexdir);
125 AjBool ajNamDbGetType(const AjPStr dbname, ajuint *itype);
126 AjBool ajNamDbGetUrl(const AjPStr dbname, AjPStr* url);
127 AjBool ajNamDbData(AjPQuery qry, ajuint argc, ...);
128 AjBool ajNamDbQuery(AjPQuery qry);
129 AjBool ajNamFileQuery(AjPQuery qry);
130 AjBool ajNamQuerySetDbalias(AjPQuery qry);
131 const char* ajNamQueryGetDatatypeC(const AjPQuery qry);
132 const AjPStr ajNamQueryGetUrl(const AjPQuery qry);
133 AjBool ajNamDbTest(const AjPStr dbname);
134 
135 AjBool ajNamSvrGetDbalias(const AjPStr svrname, AjPStr* svralias);
136 AjBool ajNamSvrGetUrl(const AjPStr svrname, AjPStr* url);
137 AjBool ajNamSvrData(AjPQuery qry, ajuint argc, ...);
138 AjBool ajNamSvrQuery(AjPQuery qry);
139 AjBool ajNamSvrTest(const AjPStr svrname);
140 ajuint ajNamSvrCount(const AjPStr svrname);
141 void   ajNamSvrListFindAliases(const AjPStr server, const AjPStr dbname,
142                                AjPList dbnames);
143 void   ajNamSvrListListAliases(const AjPStr server, AjPList dbnames);
144 void   ajNamSvrListListDatabases(const AjPStr server, AjPList dbnames);
145 
146 void   ajNamDebugOrigin(void);
147 void   ajNamDebugServers(void);
148 void   ajNamDebugDatabases(void);
149 void   ajNamDebugResources(void);
150 void   ajNamDebugVariables(void);
151 void   ajNamDebugAliases(void);
152 
153 void   ajNamExit(void);
154 
155 AjBool ajNamGetAliasC(const char* name, AjPStr* value);
156 AjBool ajNamGetAliasS(const AjPStr namestr, AjPStr* value);
157 
158 AjBool ajNamGetenvC(const char* name, AjPStr* value);
159 AjBool ajNamGetenvS(const AjPStr name, AjPStr* value);
160 AjBool ajNamGetValueC(const char *name, AjPStr* value);
161 AjBool ajNamGetValueS(const AjPStr name, AjPStr* value);
162 void   ajNamInit(const char* prefix);
163 AjBool ajNamIsDbname(const AjPStr name);
164 void   ajNamListFindAliases(const AjPStr dbname, AjPList dbnames);
165 void   ajNamListListAliases(AjPList dbnames);
166 void   ajNamListListDatabases(AjPList dbnames);
167 void   ajNamListListResources(AjPList dbnames);
168 void   ajNamListListServers(AjPList svrnames);
169 void   ajNamPrintSvrAttr(AjPFile outf, AjBool full);
170 void   ajNamPrintDbAttr(AjPFile outf, AjBool full);
171 void   ajNamPrintRsAttr(AjPFile outf, AjBool full);
172 
173 AjBool ajNamResolve(AjPStr* name);
174 
175 const AjPStr ajNamValueRootdir(void);
176 const AjPStr ajNamValueBasedir(void);
177 const AjPStr ajNamValueInstalldir(void);
178 const AjPStr ajNamValuePackage(void);
179 const AjPStr ajNamValueSystem(void);
180 const AjPStr ajNamValueVersion(void);
181 
182 AjBool ajNamRsAttrValueS(const AjPStr name, const AjPStr attribute,
183                          AjPStr *value);
184 AjBool ajNamRsAttrValueC(const char *name, const char *attribute,
185                          AjPStr *value);
186 AjBool ajNamRsListValue(const AjPStr name, AjPStr *value);
187 AjBool ajNamSetControl(const char* optionName);
188 
189 /*
190 ** End of prototype definitions
191 */
192 
193 
194 
195 
196 #ifdef WIN32
197 #ifdef AJAXDLL_EXPORTS
198 __declspec(dllexport) const char* EMBOSSWINROOT_ENVVAR;
199 #else
200 __declspec(dllimport) const char* EMBOSSWINROOT_ENVVAR;
201 #endif
202 #endif
203 
204 
205 
206 
207 #ifdef AJ_COMPILE_DEPRECATED_BOOK
208 #endif /* AJ_COMPILE_DEPRECATED_BOOK */
209 
210 #ifdef AJ_COMPILE_DEPRECATED
211 
212 __deprecated AjBool ajNamRsAttrValue(const AjPStr name, const AjPStr attribute,
213                                      AjPStr *value);
214 __deprecated AjBool ajNamGetenv(const AjPStr name, AjPStr* value);
215 __deprecated AjBool ajNamGetValue(const AjPStr name, AjPStr* value);
216 __deprecated AjBool ajNamRootInstall(AjPStr* root);
217 __deprecated AjBool ajNamRoot(AjPStr* root);
218 __deprecated AjBool ajNamRootBase(AjPStr* rootbase);
219 __deprecated AjBool ajNamRootPack(AjPStr* pack);
220 __deprecated AjBool ajNamRootVersion(AjPStr* version);
221 
222 #endif /* AJ_COMPILE_DEPRECATED */
223 
224 
225 
226 
227 AJ_END_DECLS
228 
229 #endif /* !AJNAM_H */
230