00001 #ifndef MD_CONFIG
00002 #define MD_CONFIG
00003
00004 typedef struct MDCLIENT {
00005 md_device devType;
00006 int mdStdDevIdx;
00007 } mdLiveClient;
00008
00009
00010 typedef std::map<int,mdLiveClient*> ClientsByHandle;
00011 typedef std::map<int,mdDataClient*> DataClientsByHandle;
00012 typedef std::map<int,mdInstrument*> InstrumentsByHandle;
00013
00014 class masterDaemonConfig {
00015
00016 friend class mdState;
00017
00018 public:
00019
00020 bool daemonized;
00021 bool halt;
00022 bool shuttingDown;
00023 bool shutdown;
00024 const char *configPath,**err,*logPath,
00025 *xmlrpcLogpath;
00026 mdClientServer *cliever[MAX_CLIEVER];
00027 mdMachine *machine[MAX_CLIEVER];
00028
00029 ClientsByHandle allClients;
00030 DataClientsByHandle clients;
00031 InstrumentsByHandle instruments;
00032
00033 date epoch(MD_EPOCH);
00034 int debugThreshold,nClients,nClievers,
00035 telemetryPort,thisMachineContext,
00036 xmlrpcPort;
00037 pid_t daemonProcess, shellProcess;
00038 std::string cfg_path,log_path;
00039 std::string clievers[MAX_CLIEVER];
00040
00041 masterDaemonConfig();
00042
00043 int loadMachineConfiguration(int machineClass);
00044
00045 xmlrpc_env xmlrpc_c;
00046 xmlrpc_c::registry api_registry;
00047
00048 };
00049
00050 #endif