1
0
mirror of https://github.com/winscp/winscp.git synced 2026-10-24 02:28:55 +03:00
Files
winscp/source/core/Option.h
Martin Prikryl 408d60c52f Unused code
Source commit: ac752dfdfdb46b065214310313631a5c343b8646
2023-09-19 15:25:49 +02:00

73 lines
2.8 KiB
C++

//---------------------------------------------------------------------------
#ifndef OptionH
#define OptionH
#include <vector>
//---------------------------------------------------------------------------
enum TOptionType { otParam, otSwitch };
//---------------------------------------------------------------------------
typedef void __fastcall (__closure *TLogOptionEvent)(const UnicodeString & LogStr);
//---------------------------------------------------------------------------
class TOptions
{
public:
__fastcall TOptions();
__fastcall TOptions(const TOptions & Source);
void __fastcall Add(UnicodeString Option);
void __fastcall Parse(const UnicodeString & CmdLine);
bool __fastcall FindSwitch(const UnicodeString Switch);
bool __fastcall FindSwitch(const UnicodeString Switch, UnicodeString & Value);
bool __fastcall FindSwitch(const UnicodeString Switch, UnicodeString & Value, bool & ValueSet);
bool __fastcall FindSwitch(const UnicodeString Switch, TStrings * Params,
int ParamsMax = -1);
bool __fastcall FindSwitchCaseSensitive(const UnicodeString Switch);
bool __fastcall FindSwitchCaseSensitive(const UnicodeString Switch, TStrings * Params,
int ParamsMax = -1);
UnicodeString __fastcall SwitchValue(const UnicodeString Switch, const UnicodeString Default = L"");
bool __fastcall SwitchValue(const UnicodeString Switch, bool Default);
bool __fastcall SwitchValue(const UnicodeString Switch, bool Default, bool DefaultOnNonExistence);
bool __fastcall UnusedSwitch(UnicodeString & Switch);
bool __fastcall WasSwitchAdded(UnicodeString & Switch, UnicodeString & Value, wchar_t & SwitchMark);
UnicodeString ConsumeParam();
void __fastcall LogOptions(TLogOptionEvent OnEnumOption);
__property int ParamCount = { read = FParamCount };
__property UnicodeString Param[int Index] = { read = GetParam };
__property bool Empty = { read = GetEmpty };
protected:
UnicodeString FSwitchMarks;
UnicodeString FSwitchValueDelimiters;
bool __fastcall FindSwitch(const UnicodeString Switch,
UnicodeString & Value, int & ParamsStart, int & ParamsCount, bool CaseSensitive, bool & ValueSet);
bool __fastcall DoFindSwitch(const UnicodeString Switch, TStrings * Params,
int ParamsMax, bool CaseInsensitive);
void __fastcall ParamsProcessed(int Position, int Count);
private:
struct TOption
{
TOptionType Type;
UnicodeString Name;
UnicodeString Value;
bool ValueSet;
bool Used;
wchar_t SwitchMark;
};
typedef std::vector<TOption> TOptionsVector;
TOptionsVector FOptions;
TOptionsVector FOriginalOptions;
bool FNoMoreSwitches;
int FParamCount;
UnicodeString __fastcall GetParam(int Index);
bool __fastcall GetEmpty();
};
//---------------------------------------------------------------------------
#endif