summaryrefslogtreecommitdiff
path: root/tools/lldb-mi/MICmdArgValBase.cpp
blob: ff87877fdc6b8569a0b85b23ee4861f89973d3a3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
//===-- MICmdArgValBase.cpp -------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#include "MICmdArgValBase.h"
#include "MICmdArgContext.h"
#include "MIUtilString.h"

//++
//------------------------------------------------------------------------------------
// Details: CMICmdArgValBase constructor.
// Type:    Method.
// Args:    None.
// Return:  None.
// Throws:  None.
//--
CMICmdArgValBase::CMICmdArgValBase()
    : m_bFound(false), m_bValid(false), m_bMandatory(false), m_bHandled(false),
      m_bIsMissingOptions(false) {}

//++
//------------------------------------------------------------------------------------
// Details: CMICmdArgValBase constructor.
// Type:    Method.
// Args:    vrArgName       - (R) Argument's name to search by.
//          vbMandatory     - (R) True = Yes must be present, false = optional
//          argument.
//          vbHandleByCmd   - (R) True = Command processes *this option, false =
//          not handled.
// Return:  None.
// Throws:  None.
//--
CMICmdArgValBase::CMICmdArgValBase(const CMIUtilString &vrArgName,
                                   const bool vbMandatory,
                                   const bool vbHandleByCmd)
    : m_bFound(false), m_bValid(false), m_bMandatory(vbMandatory),
      m_strArgName(vrArgName), m_bHandled(vbHandleByCmd),
      m_bIsMissingOptions(false) {}

//++
//------------------------------------------------------------------------------------
// Details: Retrieve the state flag of whether the argument is handled by the
// command or
//          not.
// Type:    Method.
// Args:    None.
// Return:  True - Command needs more information.
//          False - All information is present as expected.
// Throws:  None.
//--
bool CMICmdArgValBase::GetIsMissingOptions() const {
  return m_bIsMissingOptions;
}

//++
//------------------------------------------------------------------------------------
// Details: Retrieve the state flag of whether the argument is handled by the
// command or
//          not.
// Type:    Method.
// Args:    None.
// Return:  True - Command handles *this argument or option.
//          False - Not handled (argument specified but ignored).
// Throws:  None.
//--
bool CMICmdArgValBase::GetIsHandledByCmd() const { return m_bHandled; }

//++
//------------------------------------------------------------------------------------
// Details: Retrieve the name of *this argument.
// Type:    Method.
// Args:    None.
// Return:  CMIUtilString & - Return the text name.
// Throws:  None.
//--
const CMIUtilString &CMICmdArgValBase::GetName() const { return m_strArgName; }

//++
//------------------------------------------------------------------------------------
// Details: Retrieve the state flag of whether the argument was found in the
// command's
//          argument / options string.
// Type:    Method.
// Args:    None.
// Return:  True - Argument found.
//          False - Argument not found.
// Throws:  None.
//--
bool CMICmdArgValBase::GetFound() const { return m_bFound; }

//++
//------------------------------------------------------------------------------------
// Details: Retrieve the state flag indicating whether the value was obtained
// from the
//          text arguments string and is valid.
// Type:    Method.
// Args:    None.
// Return:  True - Argument valid.
//          False - Argument not valid.
// Throws:  None.
//--
bool CMICmdArgValBase::GetValid() const { return m_bValid; }

//++
//------------------------------------------------------------------------------------
// Details: Retrieve the state flag indicating whether *this argument is a
// mandatory
//          argument for the command or is optional to be present.
// Type:    Method.
// Args:    None.
// Return:  True - Mandatory.
//          False - Optional.
// Throws:  None.
//--
bool CMICmdArgValBase::GetIsMandatory() const { return m_bMandatory; }

//++
//------------------------------------------------------------------------------------
// Details: Parse the command's argument options string and try to extract the
// value *this
//          argument is looking for.
// Type:    Overrideable.
// Args:    vArgContext - (RW) The command's argument options string.
// Return:  MIstatus::success - Functional succeeded.
//          MIstatus::failure - Functional failed.
// Throws:  None.
//--
bool CMICmdArgValBase::Validate(CMICmdArgContext &vwArgContext) {
  MIunused(vwArgContext);

  // Override to implement

  return MIstatus::failure;
}