include/ca_defs.h

/* [<][>][^][v][top]
[bottom][index][help] */

FUNCTIONS

This source file includes following functions.

   1 #ifndef CA_DEFS
   2 #define CA_DEFS
   3 
   4 /************************************************************************
   5  * This is the definitions header file for the configuration module.  It
   6  * includes the definitions of data structures, external declarations and
   7  * definitions, definitions of sybolic constants.
   8  *
   9  ************************************************************************/
  10 
  11 #include <pthread.h>
  12 #include <glib.h>
  13 
  14 #ifdef __cplusplus
  15 extern "C" {
  16 #endif
  17 
  18 /* Number of configurations variables. */
  19 #define VARS 89
  20 
  21 #define SCOPE_GLOBAL 1
  22 #define SCOPE_LOCAL 99
  23 
  24 /* 
  25  * Define the length of a string to be 160 to cope with the 
  26  * copyright statement.
  27  *
  28  */
  29 #define STRLENGTH 160
  30 
  31 /*
  32         * Define the length of strings to cope with the values of 
  33  * various types of string variables.
  34         */
  35 #define STRLENGTH_S 40
  36 #define STRLENGTH_M 80
  37 #define STRLENGTH_L 160
  38 #define STRLENGTH_XL 320
  39 #define STRLENGTH_XXL 640
  40 
  41 
  42 /**********************************************
  43  * Default values for the SOURCE variables              *
  44         *                                                                                                                       *
  45  **********************************************/
  46 
  47  #define CA_DEFHOST "rowan"                                             
  48  #define CA_DEFPORT "4343"
  49  #define CA_DEFUSER "dbase"                                             
  50  #define CA_DEFPASSWORD "encrypt1"                              
  51  #define CA_DEFDBNAME   "default-db"                    
  52                                                                                                                         
  53 
  54 
  55 /**********************************************
  56  * Defintion of the dictionary structures.              *
  57         *                                                                                                                       *
  58  **********************************************/
  59 
  60 typedef struct dict_s   {
  61                                 char varName[STRLENGTH];
  62                                 char varSym[STRLENGTH];
  63                                 char varType[STRLENGTH];
  64                                 int varScope;
  65                                 int varNum;
  66 } dict_t;
  67 
  68 extern dict_t dictionary[];
  69 
  70 
  71 
  72 
  73 /**********************************************
  74  * Definition of the values structures.                 *
  75  *                                                                                                                      *
  76         **********************************************/
  77 
  78 typedef struct values_s {
  79                                 char *strPtr;   /* Pointer to the string that contains the value. */
  80                                 void *valPtr;   /* Pointer to the actual value. */
  81 } values_t;                                                                     
  82 
  83 /*
  84  * "extern" definition of variables that are defined elsewhere.
  85  */
  86 
  87 
  88 extern values_t globals[];
  89 extern values_t locals[];
  90 
  91 /*
  92  * "extern" definition of configuration variables, defined elsewhere.
  93  */
  94 extern values_t confVars[];
  95 
  96 /* Mutex lock; used for synchronising changes. */
  97 pthread_mutex_t Lock;
  98 
  99 /* 
 100         * New value of the bindport.
 101         * This must be a global variable.
 102         */
 103 
 104 char newPort[16];
 105 
 106 /*
 107  * The following is needed for the SOURCE variable.  First,
 108  * we define the "database" structure.  Then, we define the
 109  * structure of an element of the linked list.  Lastly, we 
 110  * define the linked list itself.
 111  */
 112 
 113 typedef struct ca_database_s    {
 114 
 115                         char host[64];
 116                         int port;
 117                         char user[16];
 118                         char password[9];
 119                         char dbName[16];
 120                 } ca_database_t;
 121 
 122 typedef struct ca_mirror_s              {
 123                         char host[64];
 124                         int port;
 125                         char log[64];
 126                         int delay;
 127                         int protocolVer;
 128                 } ca_mirror_t;
 129 
 130 typedef struct ca_ripadmin_s    {
 131                         char host[64];
 132                         int port;
 133                         char user[16];
 134                         char password[9];
 135                         char tableName[16];
 136                 } ca_ripadmin_t;
 137 
 138 extern ca_database_t ripe;
 139 extern ca_database_t arin;
 140 extern ca_database_t radb;
 141 
 142 typedef struct ca_database_list_s               {
 143                         char name[16];  
 144                         ca_database_t db;
 145                         int opMode;
 146                         ca_mirror_t nrtm;
 147                         int updPort;
 148                         char canupd[2];
 149                         char deflook[2];
 150                 } ca_database_list_t;
 151 
 152 /*
 153         * Define the type of a source.
 154  * This is the name of a source and
 155  * the details of the database which 
 156  * makes this source.
 157  */
 158 typedef struct ca_dbSource_s    {
 159                         char name[16];
 160                         ca_database_t db;
 161                         int opMode;
 162                         ca_mirror_t nrtm;
 163                         int updPort;
 164                         char canupd[2];
 165                         char deflook[2];
 166                 } ca_dbSource_t;
 167 
 168 /*
 169  * Define the source handle:
 170  * this is a pointer to a source;
 171  * i.e. it is of type ca_dbSource_t.
 172  */
 173 typedef ca_dbSource_t ca_SrcHdl_t;
 174 
 175 extern ca_database_list_t ripeComponent;
 176 extern ca_database_list_t arinComponent;
 177 extern ca_database_list_t radbComponent;
 178 
 179 /*
 180  * typedef struct GSList {
 181         *       gpointer src;           
 182         *       GSList *next;
 183         *       } ca_source_t;
 184  */
 185  /* gpointer src;               This points to a ca_database_list_t varialbe */
 186 
 187 
 188 /*************************************************************
 189  * Definition of the default values for the SOURCE variable.    *
 190  *                                                                                                                                                              *
 191  *************************************************************/
 192 
 193 /*
 194  * char ca_defHost[64];
 195  * char ca_defPort[16];
 196  * char ca_defUser[16];
 197  * char ca_defPassword[9];
 198  * char ca_defdbName[16];
 199  */
 200 
 201 /*
 202  * extern char ca_defPort[16];
 203  * extern char ca_defHost[64];
 204  * extern char ca_defUser[16];
 205  * extern char ca_defPassword[9];
 206  * extern char ca_defdbName[16];
 207  */
 208 
 209 /*
 210  * The linked-list of sources.
 211  *
 212  */
 213 extern GSList *sourceList;
 214 
 215 /*
 216  * extern ca_source_t *srcList;
 217  */
 218 
 219 /*
 220  * A varialbe of type GSList
 221  */
 222 extern ca_dbSource_t *testSource;
 223 
 224 
 225 /*
 226  * 20000609
 227  * Experiment:
 228  * define the variable mySrcList as type GSList;
 229  * use the extern modifier and put the "real" definition
 230  * of the variable elsewhere.
 231  *
 232  * extern GSList *mySrcList;
 233  */
 234 
 235 /*
 236         * The test configuration file.
 237  * This is defined using a constant string, cf. Oualline, p.145.
 238  */
 239 extern const char *testFile;
 240 extern const char *tempFile;
 241 extern const char *dictFile;
 242 extern const char *confFile;
 243 
 244 /* 
 245  * Value returned by ca_getStorageLocation if the symbol for
 246  * a configuration variable cannot be found.
 247  *
 248         * This value is also returned by ca_getType, if it cannot map 
 249  * the name of a configuration variable to a data type.
 250  *
 251  */
 252 #define NOT_FOUND -1    
 253 
 254 /*
 255  * Symbolic constants defined to represent data types.
 256 
 257  * #define CA_INT                       11
 258  * #define CA_STRING            12
 259  * #define CA_DIRLIST   13
 260  * #define CA_BOOLEAN   14
 261  * #define CA_SOURCETYPE                15
 262         */
 263 
 264 extern ca_dbSource_t *theSrc;
 265 
 266 #ifdef __cplusplus
 267 }
 268 #endif
 269 
 270 
 271 #endif /* CA_DEFS */

/* [<][>][^][v][top][bottom][index][help] */