1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- #if defined(_MSC_VER)
- #include "stdafx.h"
- #endif //_MSC_VER
- #include "log4rvcother.h"
- #include <string.h>
- #include "env_deal.h"
- namespace cmb {
- env_deal::env_deal(const std::string& name):str_(name)
- {
- }
- bool env_deal::set(const std::string& value)
- {
- #if defined(_MSC_VER)
- DWORD dwResult = SetEnvironmentVariableA(str_.c_str(), value.c_str());
- return (dwResult != 0);
- #else
- if (setenv(str_.c_str(), value.c_str(), 1) != 0)
- return false;
- return true;
- #endif //_MSC_VER
- }
- bool env_deal::get(std::string& value)
- {
- #if defined(_MSC_VER)
- bool res = false;
- DWORD dwSize;
- value.clear();
- dwSize = GetEnvironmentVariableA(str_.c_str(), NULL, 0);
- if (dwSize > 0) {
- char* buf = new char[dwSize + 1];
- if (buf == NULL) {
- return false;
- }
- memset(buf, '\0', sizeof(char) * (dwSize + 1));
- dwSize = GetEnvironmentVariableA(str_.c_str(), buf, dwSize);
- if (dwSize > 0) {
- value = buf;
- res = true;
- }
- delete[] buf;
- }
- return res;
- #else
- bool res = false;
- value.clear();
- char* var = getenv(str_.c_str());
- if (var == NULL)
- return false;
- size_t len = strlen(var);
- if (len > 0) {
- char* buf = new char[len + 1];
- if (buf == NULL) {
- return false;
- }
- memset(buf, '\0', sizeof(char) * (len + 1));
- memcpy(buf, var, len);
- value = buf;
- res = true;
- delete[] buf;
- }
- return res;
- #endif //_MSC_VER
- }
- env_deal::~env_deal(void)
- {
- }
- bool env_log_config::retrieve_env_value()
- {
- env_deal("VENDOR_RECODE_TYPE").get(record_type);
- env_deal("VENDOR_RECODE_LEVEL").get(record_level);
- env_deal("VENDOR_DLL_NAME").get(module_name);
- env_deal("VENDOR_LOG_PATH").get(record_path);
- return true;
- }
- }
|