Plasma Engine  2.0
Loading...
Searching...
No Matches
CommandLineUtils.h
1#pragma once
2
3#include <Foundation/Basics.h>
4#include <Foundation/Containers/DynamicArray.h>
5#include <Foundation/Strings/String.h>
6#include <Foundation/Strings/StringBuilder.h>
7
12class PL_FOUNDATION_DLL plCommandLineUtils
13{
14public:
16 {
18 PreferOsArgs,
20 };
21
23 static plCommandLineUtils* GetGlobalInstance();
24
30 static void SplitCommandLineString(const char* szCommandString, bool bAddExecutableDir, plDynamicArray<plString>& out_args, plDynamicArray<const char*>& out_argsV);
31
33 void SetCommandLine(plUInt32 uiArgc, const char** pArgv, ArgMode mode = UseArgcArgv); // [tested]
34
36 void SetCommandLine(plUInt32 uiArgc, char** pArgv, ArgMode mode = UseArgcArgv)
37 {
38 SetCommandLine(uiArgc, const_cast<const char**>(pArgv), mode);
39 }
40
42 void SetCommandLine(plArrayPtr<plString> commands);
43
44#if PL_ENABLED(PL_PLATFORM_WINDOWS_DESKTOP)
48 void SetCommandLine();
49#endif
50
52 const plDynamicArray<plString>& GetCommandLineArray() const;
53
55 plString GetCommandLineString() const;
56
58 plUInt32 GetParameterCount() const; // [tested]
59
61 const plString& GetParameter(plUInt32 uiParam) const; // [tested]
62
73 plInt32 GetOptionIndex(plStringView sOption, bool bCaseSensitive = false) const; // [tested]
74
76 bool HasOption(plStringView sOption, bool bCaseSensitive = false) const;
77
81 plUInt32 GetStringOptionArguments(plStringView sOption, bool bCaseSensitive = false) const; // [tested]
82
86 plStringView GetStringOption(plStringView sOption, plUInt32 uiArgument = 0, plStringView sDefault = {},
87 bool bCaseSensitive = false) const; // [tested]
88
98 const plString GetAbsolutePathOption(plStringView sOption, plUInt32 uiArgument = 0, plStringView sDefault = {}, bool bCaseSensitive = false) const;
99
115 bool GetBoolOption(plStringView sOption, bool bDefault = false, bool bCaseSensitive = false) const; // [tested]
116
132 plInt32 GetIntOption(plStringView sOption, plInt32 iDefault = 0, bool bCaseSensitive = false) const; // [tested]
133
135 plUInt32 GetUIntOption(plStringView sOption, plUInt32 uiDefault = 0, bool bCaseSensitive = false) const; // [tested]
136
152 double GetFloatOption(plStringView sOption, double fDefault = 0.0, bool bCaseSensitive = false) const; // [tested]
153
161 void InjectCustomArgument(plStringView sArgument); // [tested]
162
163private:
164 plDynamicArray<plString> m_Commands;
165};
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
This is a helper class to parse command lines.
Definition CommandLineUtils.h:13
void SetCommandLine(plUInt32 uiArgc, char **pArgv, ArgMode mode=UseArgcArgv)
Overload for non-const argv versions.
Definition CommandLineUtils.h:36
ArgMode
Definition CommandLineUtils.h:16
@ UseArgcArgv
Use the passed in argc/argv values as they are passed in.
Definition CommandLineUtils.h:17
Definition DynamicArray.h:81
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34