#include "config.h" #include "str_functs.h" namespace CPPCOMMON { Config::Config() { _isInit = false; } Config::~Config() { } bool Config::init(const string& configFile) { char msgBuf[1024]; if(_isInit) { LogFatal("already have been initialized. "); return false; } ifstream ifile(configFile.c_str()); if(!ifile) { sprintf(msgBuf, "open configFile[%s] failed.", configFile.c_str()); LogFatal(msgBuf); return false; } string line, key, value; vector vecBuf; while(getline(ifile, line)) { line = _stripComment(line); if(line.empty()) { continue; } vecBuf = splitStr(line, "="); if(2 != vecBuf.size()) { sprintf(msgBuf, "line[%s] is illegal.", line.c_str()); LogFatal(msgBuf); return false; } key = vecBuf[0]; value = vecBuf[1]; if(_map.end() != _map.find(key)) { sprintf(msgBuf, "key[%s] already exists.", key.c_str()); LogFatal(msgBuf); return false; } _map[key] = value; } ifile.close(); _isInit = true; return true; } void Config::display() { for(map::iterator it = _map.begin(); it != _map.end(); it++) { cout<<"("<first<<","<second<<")"<