- try to optimize debug flag checking

This commit is contained in:
Mark Vejvoda
2012-05-03 01:25:34 +00:00
parent b84c69a93b
commit 2267011cbc
2 changed files with 27 additions and 17 deletions

View File

@@ -129,6 +129,8 @@ protected:
static bool haveSpecialOutputCommandLineOption;
static bool curl_global_init_called;
static SystemFlagsType * setupRequiredMembers();
public:
static CURL *curl_handle;
@@ -141,7 +143,18 @@ public:
~SystemFlags();
static void init(bool haveSpecialOutputCommandLineOption);
static SystemFlagsType & getSystemSettingType(DebugType type);
//static SystemFlagsType & getSystemSettingType(DebugType type);
inline static SystemFlagsType & getSystemSettingType(DebugType type) {
if(SystemFlags::debugLogFileList == NULL) {
SystemFlagsType *result = setupRequiredMembers();
if(result != NULL) {
return *result;
}
}
return (*debugLogFileList)[type];
}
static size_t httpWriteMemoryCallback(void *ptr, size_t size, size_t nmemb, void *data);
static std::string getHTTP(std::string URL,CURL *handle=NULL, int timeOut=-1, CURLcode *savedResult=NULL);
static std::string escapeURL(std::string URL, CURL *handle=NULL);

View File

@@ -213,26 +213,23 @@ void SystemFlags::globalCleanupHTTP() {
}
}
SystemFlags::SystemFlagsType & SystemFlags::getSystemSettingType(DebugType type) {
if(SystemFlags::debugLogFileList == NULL) {
SystemFlags::SystemFlagsType * SystemFlags::setupRequiredMembers() {
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
if(threadLogger == NULL && SystemFlags::SHUTDOWN_PROGRAM_MODE == true) {
//throw megaglest_runtime_error("threadLogger == NULL && SystemFlags::SHUTDOWN_PROGRAM_MODE == true");
if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s Line: %d] ERROR threadLogger == NULL && SystemFlags::SHUTDOWN_PROGRAM_MODE == true\n",__FILE__,__FUNCTION__,__LINE__);
//static SystemFlagsType *result = new SystemFlagsType();
static SystemFlagsType result;
static SystemFlags::SystemFlagsType result;
result.enabled = SystemFlags::VERBOSE_MODE_ENABLED;
return result;
return &result;
}
else {
SystemFlags::init(false);
return NULL;
}
}
return (*debugLogFileList)[type];
}
void SystemFlags::init(bool haveSpecialOutputCommandLineOption) {
SystemFlags::haveSpecialOutputCommandLineOption = haveSpecialOutputCommandLineOption;
if(SystemFlags::debugLogFileList == NULL) {