diff --git a/util.cpp b/util.cpp new file mode 100644 index 00000000..1f000f50 --- /dev/null +++ b/util.cpp @@ -0,0 +1,45 @@ +#include "util.h" + +namespace i2p +{ +namespace util +{ +std::map mapArgs; + +void ParseArguments(int argc, const char* const argv[]) +{ + mapArgs.clear(); + for (int i = 1; i < argc; i++) + { + std::string strKey (argv[i]); + std::string strValue; + size_t has_data = strKey.find('='); + if (has_data != std::string::npos) + { + strValue = strKey.substr(has_data+1); + strKey = strKey.substr(0, has_data); + } + if (strKey[0] != '-') + break; + + mapArgs[strKey] = strValue; + } +} + +int GetIntArg(const std::string& strArg, int nDefault) +{ + if (mapArgs.count(strArg)) + return atoi(mapArgs[strArg].c_str()); + return nDefault; +} + +std::string GetStringArg(const std::string& strArg, std::string nDefault) +{ + if (mapArgs.count(strArg)) + return mapArgs[strArg]; + return nDefault; +} + + +} // Namespace end +} diff --git a/util.h b/util.h new file mode 100644 index 00000000..ef015ded --- /dev/null +++ b/util.h @@ -0,0 +1,19 @@ +#ifndef UTIL_H +#define UTIL_H + +#include +#include + +namespace i2p +{ +namespace util +{ + extern std::map mapArgs; + void ParseArguments(int argc, const char* const argv[]); + int GetIntArg(const std::string& strArg, int nDefault); + +} +} + + +#endif