00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include <stdio.h>
00024 #include <Basics.H>
00025 #include <VestaConfig.H>
00026 #include "ReadConfig.H"
00027
00028 using std::cerr;
00029 using std::endl;
00030
00031 void DieWithError(const Text &msg) throw () {
00032 cerr << "Fatal error: " << msg << endl;
00033 exit(1);
00034 }
00035
00036 Text ReadConfig::Location() throw ()
00037 {
00038 try {
00039 return VestaConfig::get_location();
00040 } catch (VestaConfig::failure f) {
00041 DieWithError("failed to locate Vesta-2 configuration file");
00042 }
00043 return "";
00044 }
00045
00046 Text ReadConfig::TextVal(const Text& sect, const Text& nm) throw ()
00047 {
00048 Text res;
00049 try {
00050 res = VestaConfig::get_Text(sect, nm);
00051 } catch (VestaConfig::failure f) {
00052 DieWithError(f.msg);
00053 }
00054 return res;
00055 }
00056
00057 int ReadConfig::IntVal(const Text& sect, const Text& nm) throw ()
00058 {
00059 int res;
00060 try {
00061 res = VestaConfig::get_int(sect, nm);
00062 } catch (VestaConfig::failure f) {
00063 DieWithError(f.msg);
00064 }
00065 return res;
00066 }
00067
00068 bool ReadConfig::OptIntVal(const Text& sect, const Text& nm, int& val) throw ()
00069 {
00070 bool res;
00071 try {
00072 Text dummy;
00073 if ((res = VestaConfig::get(sect, nm, dummy))) {
00074 val = VestaConfig::get_int(sect, nm);
00075 }
00076 } catch (VestaConfig::failure f) {
00077 DieWithError(f.msg);
00078 }
00079 return res;
00080 }
00081
00082 bool ReadConfig::OptBoolVal(const Text& sect, const Text& nm, bool& val)
00083 throw ()
00084 {
00085 bool res;
00086 try {
00087 Text dummy;
00088 if ((res = VestaConfig::get(sect, nm, dummy))) {
00089 int int_val = VestaConfig::get_int(sect, nm);
00090 val = (int_val != 0) ? true : false;
00091 }
00092 } catch (VestaConfig::failure f) {
00093 DieWithError(f.msg);
00094 }
00095 return res;
00096 }