← Back to file list Raw

src/CStartupArgsManager.h

#pragma once
#include "CComponent.h"
#include <map>
#include <vector>
#include "U_String.h"
class CStartupArgsManager : public CComponent
{
public:
CStartupArgsManager();
void SetupDefaults();
void Parse();
void ProcessCommands();
void V_PostInit() override;
bool IsArgumentSet(const std::string& arg);
std::string GetArgumentValue(const std::string& arg);
template<typename T>
void GetIfExist(const std::string& arg, T& var)
{
if(!IsArgumentSet(arg)) { return; }
std::string val = GetArgumentValue(arg);
if(val.empty()) { return; }
var = StringUtils::FromStr<T, std::string>(arg);
}
template<typename T>
T WrapArgumentValue(const std::string& arg)
{
std::string val = GetArgumentValue(arg);
if(val.empty()) { return T{}; }
return StringUtils::FromStr<T, std::string>(arg);
}
std::map<std::string, std::string> Arguments;
std::vector<std::string> Commands;
DEFINE_COMPONENT();
};