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