1 | /*************************************** 2 | $Revision: 3 | 4 | CA module: function prototypes. 5 | 6 | Status: NOT REVIEWED, NOT TESTED 7 | 8 | Author(s): Ambrose Magee 9 | 10 | ******************/ /****************** 11 | Modification History: 12 | ******************/ 13 | 14 | /************************************ 15 | Copyright (c) 2000 RIPE NCC 16 | 17 | All Rights Reserved 18 | 19 | Permission to use, copy, modify, and distribute this software and its 20 | documentation for any purpose and without fee is hereby granted, 21 | provided that the above copyright notice appear in all copies and that 22 | both that copyright notice and this permission notice appear in 23 | supporting documentation, and that the name of the author not be 24 | used in advertising or publicity pertaining to distribution of the 25 | software without specific, written prior permission. 26 | 27 | THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 28 | ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL 29 | AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 30 | DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN 31 | AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 32 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 33 | ***************************************/ 34 | 35 | #ifndef CA_CONFIGFNS_H 36 | #define CA_CONFIGFNS_H 37 | 38 | #include "ca_defs.h" 39 | #include <memwrap.h> 40 | #include <erroutines.h> 41 | 42 | #ifdef __cplusplus 43 | extern "C" { 44 | #endif 45 | 46 | 47 | /********************************************************************** 48 | * This file contains the all the functions prototypes. * 49 | **********************************************************************/ 50 | 51 | 52 | void stringPack(char *, const char *); 53 | 54 | /* 55 | * This function prototype is for a function which reads a file and 56 | * splits it into tokens. 57 | * 58 | */ 59 | void opSplitsen(FILE *, gchar **); 60 | 61 | /********************************************************************* 62 | * ca_populateDictionary() function -- populates the dictionary with the 63 | * contents of the dictionary file. 64 | * 65 | * Parameters 66 | * woordenbook[] -- an array of dictionary structures. 67 | * size -- the size of the array. 68 | * 69 | * Returns 70 | * Nothing. 71 | * 72 | *********************************************************************/ 73 | 74 | void ca_populateDictionary(dict_t [], int); 75 | 76 | void getDictionary(dict_t [], int); 77 | 78 | /* 79 | * readConfig() 80 | * Reads the configuration text file. 81 | */ 82 | 83 | void ca_readConfig(const char *, values_t [], int); 84 | 85 | /* 86 | * void ca_init(values_t [], values_t []); 87 | */ 88 | int ca_init(const char *); 89 | 90 | /* 91 | * The get functions. 92 | */ 93 | int ca_get_int(int); 94 | char *ca_get_dirlist(int); 95 | char *ca_get_string(int); 96 | int ca_get_boolean(int symbol); 97 | 98 | /* 99 | * The set functions. 100 | */ 101 | void ca_set_int(int); 102 | void ca_set_dirlist(int); 103 | void ca_set_string(int); 104 | void ca_set_boolean(int symbol); 105 | 106 | /* 107 | * The get functions for the database and SOURCE variables. 108 | */ 109 | void ca_getDatabase(ca_database_t); 110 | void ca_getSource(ca_database_list_t); 111 | void ca_getSourcePtr(ca_database_list_t *); 112 | void ca_getAllSources(GSList *); 113 | 114 | /* 115 | * The get function for the Dictionary. 116 | * 117 | */ 118 | void ca_getDictionary(dict_t [], int); 119 | 120 | /* 121 | * The get function for the string elements of the 122 | * the configuration structure. 123 | */ 124 | void ca_getConfig(values_t [], int); 125 | 126 | /* 127 | * A function that walks through the linked list of sources 128 | * and compares the name of each source with a user-supplied 129 | * name. If it finds the name of the source, it prints the 130 | * details of the source. 131 | */ 132 | void ca_getAsource(char *, GSList *); 133 | 134 | 135 | /* 136 | * A function that walks through the linked list of sources 137 | * and compares the name of each source with a user-supplied 138 | * name. If it finds the name of the source, it returns a 139 | * pointer to the structure that represents the source. 140 | */ 141 | ca_dbSource_t *ca_getSourceDetails(char *, GSList *); 142 | 143 | /* 144 | * A function that returns a handle to a Source, 145 | * given its position in the linked-list of sources. 146 | * 147 | */ 148 | ca_SrcHdl_t *ca_get_SourceHandleByPosition(int); 149 | 150 | /* ca_get_SourceHandleByName(char *); 151 | * 152 | * A function that returns a handle to a Source, 153 | * given its name in the linked-list of sources. 154 | * 155 | */ 156 | ca_SrcHdl_t *ca_get_SourceHandleByName(char *); 157 | 158 | /* 159 | * Given a source-handle and an attribute, returns a 160 | * pointer to a character variable. 161 | */ 162 | char *ca_srchandle2Strelement(ca_SrcHdl_t *, int ); 163 | 164 | /* 165 | * Given a source-handle and an attribute, returns an 166 | * integer. 167 | */ 168 | int ca_srchandle2Intelement(ca_SrcHdl_t *ah, int srcAttrib); 169 | 170 | /* 171 | * Returns a string element of the admin db structure. 172 | */ 173 | char *ca_get_adminStrElement(int symbol, int adminAttrib); 174 | 175 | /* 176 | * Returns an int element of the admin db structure. 177 | */ 178 | int ca_get_adminIntElement(int symbol, int adminAttrib); 179 | 180 | /* 181 | * Writes a new value of a variable back to the configuration file; 182 | * returns 0 on successful completion; otherwise it dies. 183 | */ 184 | int ca_writeNewValue(int, char *); 185 | 186 | /* 187 | * Given a symbol from the list of symbols of variable types, 188 | * this returns a handle (pointer) to the Update Source. 189 | */ 190 | ca_updDbSource_t *ca_get_UpdSourceHandle(int ); 191 | 192 | /* 193 | * Given a pointer to the Update Source and a symbol from the list 194 | * of symbols of attributes, this returns a copy of a string 195 | * attribute of the Update Source variable. 196 | */ 197 | char *ca_UpdSrcHandle2StrElement(ca_updDbSource_t *, int); 198 | 199 | /* 200 | * Given a pointer to the Update Source and a symbol from the list 201 | * of symbols of attributes, this returns the value of an integer 202 | * attribute of the Update Source variable. 203 | */ 204 | int ca_UpdSrcHandle2IntElement(ca_updDbSource_t *, int); 205 | 206 | /* 207 | * Given the name of the sources file and the array of values, 208 | * this function reads the definitions of databases, mirrors, etc. 209 | * and loads the SOURCE variable. 210 | */ 211 | void ca_readSources(const char *, values_t []); 212 | 213 | /* 214 | * Given a pointer to the linked list of databases, 215 | * this function returns the details of every database 216 | * in the list. 217 | */ 218 | void ca_getAllDatabases(GSList *); 219 | 220 | 221 | /* 222 | * Given a pointer to the linked list of mirrors, 223 | * this function returns the details of every mirror 224 | * in the list. 225 | */ 226 | void ca_getAllMirrors(GSList *); 227 | 228 | /* ca_get_DbHandleByName(char *); 229 | * 230 | * A function that returns a handle to a Database 231 | * given its name in the linked-list of databases. 232 | * 233 | */ 234 | ca_database_t *ca_getDbHandleByName(char *); 235 | ca_SrcHdl_t *ca_get_SourceHandleByName(char *); 236 | ca_mirror_t *ca_getNrtmHandleByName(char *); 237 | 238 | /* 239 | * ca_sanityChk() 240 | * -- Checks if all variables in the dictionary have been defined 241 | * in the configuration file. 242 | * 243 | */ 244 | int ca_sanityChk(values_t []); 245 | int ca_sanityCheck(values_t []); 246 | 247 | 248 | /* 249 | * ca_mandVarChk() 250 | * - checks if all the mandatory variables in the dictionary have 251 | * been defined in the configuration file. 252 | */ 253 | int ca_mandVarChk(); 254 | 255 | 256 | /* 257 | * ca_conifigCheck() 258 | * - wrapper for the ca_sanityCheck() function. 259 | */ 260 | int ca_conifigCheck(); 261 | 262 | #ifdef __cplusplus 263 | } 264 | #endif 265 | 266 | 267 | 268 | #endif