#pragma once #include "CComponent.h" #include #include #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 void GetIfExist(const std::string& arg, T& var) { if(!IsArgumentSet(arg)) { return; } std::string val = GetArgumentValue(arg); if(val.empty()) { return; } var = StringUtils::FromStr(arg); } template T WrapArgumentValue(const std::string& arg) { std::string val = GetArgumentValue(arg); if(val.empty()) { return T{}; } return StringUtils::FromStr(arg); } std::map Arguments; std::vector Commands; DEFINE_COMPONENT(); };