1 #ifndef FERESOURCE_H
2 #define FERESOURCE_H
3 
4 #include <sys/param.h>
5 
6 #define DIR_SEP '/'
7 #define DIR_SEPP "/"
8 
9 #ifndef MAXPATHLEN
10 #define MAXPATHLEN 1024
11 #endif
12 
13 #ifdef __cplusplus
14 #include "../factory/globaldefs.h"
15 /*****************************************************************
16  *
17  * Resource management (feResources.cc)
18  *
19  *****************************************************************/
20 typedef enum {feResUndef = 0, feResBinary, feResDir, feResFile, feResUrl, feResPath} feResourceType;
21 
22 typedef struct feResourceConfig_s
23 {
24   const char*           key;   // key to identify resource
25   const char            id;    // char id to identify resource
26   feResourceType  type;  // type of Resource
27   const char*           env;   // env variable to look for
28   const char*           fmt;   // format string -- see below for epxlaination
29   char*                 value; // what it was set to: may be changed
30 } feResourceConfig_s;
31 typedef feResourceConfig_s * feResourceConfig;
32 
33 EXTERN_VAR feResourceConfig_s feResourceConfigs[];
34 
35 // returns value of Resource as read-only string, or NULL
36 // if Resource not found
37 // issues warning, if explicitely requested (warn > 0), or
38 // if warn < 0 and Resource is gotten for the first time
39 // Always quiet if warn == 0
40 char* feResource(const char id, int warn = -1);
41 char* feResource(const char* key, int warn = -1);
42 
43 char* feGetResource(const char id, int warn = -1);
44 
45 // char* feResourceDefault(const char id);
46 // char* feResourceDefault(const char* key);
47 
48 
49 // This needs to be called before the first call to feResource
50 // Initializes Resources, SearchPath, and extends PATH
51 void feInitResources(const char* argv0);
52 // Re-inits resources, should be called after changing env. variables
53 void feReInitResources();
54 #endif /* end ifdef __cplusplus */
55 
56 EXTERN_VAR char* feArgv0;
57 
58 const char fePathSep = ':' ;
59 
60 #endif
61