summaryrefslogtreecommitdiff
path: root/tools/lldb-mi/MICmdArgValOptionLong.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MICmdArgValOptionLong.h')
-rw-r--r--tools/lldb-mi/MICmdArgValOptionLong.h141
1 files changed, 71 insertions, 70 deletions
diff --git a/tools/lldb-mi/MICmdArgValOptionLong.h b/tools/lldb-mi/MICmdArgValOptionLong.h
index 3baae416c93ae..8ff92bf84369c 100644
--- a/tools/lldb-mi/MICmdArgValOptionLong.h
+++ b/tools/lldb-mi/MICmdArgValOptionLong.h
@@ -8,15 +8,15 @@
//===----------------------------------------------------------------------===//
//++
-// File: MICmdArgValOptionLong.h
+// File: MICmdArgValOptionLong.h
//
-// Overview: CMICmdArgValOptionLong interface.
+// Overview: CMICmdArgValOptionLong interface.
//
-// Environment: Compilers: Visual C++ 12.
-// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
-// Libraries: See MIReadmetxt.
+// Environment: Compilers: Visual C++ 12.
+// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
+// Libraries: See MIReadmetxt.
//
-// Copyright: None.
+// Copyright: None.
//--
#pragma once
@@ -29,81 +29,82 @@ class CMICmdArgContext;
class CMIUtilString;
//++ ============================================================================
-// Details: MI common code class. Command argument class. Arguments object
-// needing specialization derived from the CMICmdArgValBase class.
-// An argument knows what type of argument it is and how it is to
-// interpret the options (context) string to find and validate a matching
-// argument and so extract a value from it.
-// If *this argument has expected options following it the option objects
-// created to hold each of those option's values belong to *this argument
-// object and so are deleted when *this object goes out of scope.
-// Based on the Interpreter pattern.
-// Gotchas: None.
-// Authors: Illya Rudkin 16/04/2014.
-// Changes: None.
+// Details: MI common code class. Command argument class. Arguments object
+// needing specialization derived from the CMICmdArgValBase class.
+// An argument knows what type of argument it is and how it is to
+// interpret the options (context) string to find and validate a matching
+// argument and so extract a value from it.
+// If *this argument has expected options following it the option objects
+// created to hold each of those option's values belong to *this argument
+// object and so are deleted when *this object goes out of scope.
+// Based on the Interpreter pattern.
+// Gotchas: None.
+// Authors: Illya Rudkin 16/04/2014.
+// Changes: None.
//--
class CMICmdArgValOptionLong : public CMICmdArgValListBase
{
-// Methods:
-public:
- /* ctor */ CMICmdArgValOptionLong( void );
- /* ctor */ CMICmdArgValOptionLong( const CMIUtilString & vrArgName, const bool vbMandatory, const bool vbHandleByCmd );
- /* ctor */ CMICmdArgValOptionLong( const CMIUtilString & vrArgName, const bool vbMandatory, const bool vbHandleByCmd, const ArgValType_e veType, const MIuint vnExpectingNOptions );
- //
- bool IsArgLongOption( const CMIUtilString & vrTxt ) const;
- const VecArgObjPtr_t & GetExpectedOptions( void ) const;
- template< class T1, typename T2 >
- bool GetExpectedOption( T2 & vrwValue ) const;
-
-// Overridden:
-public:
- // From CMICmdArgValBase
- /* dtor */ virtual ~CMICmdArgValOptionLong( void );
- // From CMICmdArgSet::IArg
- virtual bool Validate( CMICmdArgContext & vArgContext );
+ // Methods:
+ public:
+ /* ctor */ CMICmdArgValOptionLong(void);
+ /* ctor */ CMICmdArgValOptionLong(const CMIUtilString &vrArgName, const bool vbMandatory, const bool vbHandleByCmd);
+ /* ctor */ CMICmdArgValOptionLong(const CMIUtilString &vrArgName, const bool vbMandatory, const bool vbHandleByCmd,
+ const ArgValType_e veType, const MIuint vnExpectingNOptions);
+ //
+ bool IsArgLongOption(const CMIUtilString &vrTxt) const;
+ const VecArgObjPtr_t &GetExpectedOptions(void) const;
+ template <class T1, typename T2> bool GetExpectedOption(T2 &vrwValue) const;
-// Methods:
-protected:
- bool ExtractExpectedOptions( CMICmdArgContext & vrwTxt, const MIuint nArgIndex );
+ // Overridden:
+ public:
+ // From CMICmdArgValBase
+ /* dtor */ virtual ~CMICmdArgValOptionLong(void);
+ // From CMICmdArgSet::IArg
+ virtual bool Validate(CMICmdArgContext &vArgContext);
-// Overrideable:
-protected:
- virtual bool IsArgOptionCorrect( const CMIUtilString & vrTxt ) const;
- virtual bool ArgNameMatch( const CMIUtilString & vrTxt ) const;
+ // Methods:
+ protected:
+ bool ExtractExpectedOptions(CMICmdArgContext &vrwTxt, const MIuint nArgIndex);
-// Methods:
-private:
- void Destroy( void );
+ // Overrideable:
+ protected:
+ virtual bool IsArgOptionCorrect(const CMIUtilString &vrTxt) const;
+ virtual bool ArgNameMatch(const CMIUtilString &vrTxt) const;
-// Attributes:
-private:
- MIuint m_nExpectingNOptions; // The number of options expected to read following *this argument
- VecArgObjPtr_t m_vecArgsExpected; // The option objects holding the value extracted following *this argument
- ArgValType_e m_eExpectingOptionType; // The type of options expected to read following *this argument
+ // Methods:
+ private:
+ void Destroy(void);
+
+ // Attributes:
+ private:
+ MIuint m_nExpectingNOptions; // The number of options expected to read following *this argument
+ VecArgObjPtr_t m_vecArgsExpected; // The option objects holding the value extracted following *this argument
+ ArgValType_e m_eExpectingOptionType; // The type of options expected to read following *this argument
};
//++ ------------------------------------------------------------------------------------
-// Details: Retrieve the first argument or option value from the list of 1 or more options
-// parsed from the command's options string.
-// Type: Template method.
-// Args: vrwValue - (W) Templated type return value.
-// T1 - The argument value's class type of the data hold in the list of options.
-// T2 - The type pf the variable which holds the value wanted.
-// Return: MIstatus::success - Functional succeeded.
-// MIstatus::failure - Functional failed. List of object was empty.
-// Throws: None.
+// Details: Retrieve the first argument or option value from the list of 1 or more options
+// parsed from the command's options string.
+// Type: Template method.
+// Args: vrwValue - (W) Templated type return value.
+// T1 - The argument value's class type of the data hold in the list of options.
+// T2 - The type pf the variable which holds the value wanted.
+// Return: MIstatus::success - Functional succeeded.
+// MIstatus::failure - Functional failed. List of object was empty.
+// Throws: None.
//--
-template< class T1, typename T2 >
-bool CMICmdArgValOptionLong::GetExpectedOption( T2 & vrwValue ) const
+template <class T1, typename T2>
+bool
+CMICmdArgValOptionLong::GetExpectedOption(T2 &vrwValue) const
{
- const VecArgObjPtr_t & rVecOptions( GetExpectedOptions() );
- VecArgObjPtr_t::const_iterator it2 = rVecOptions.begin();
- if( it2 != rVecOptions.end() )
- {
- const T1 * pOption = static_cast< T1 * >( *it2 );
- vrwValue = pOption->GetValue();
- return MIstatus::success;
- }
+ const VecArgObjPtr_t &rVecOptions(GetExpectedOptions());
+ VecArgObjPtr_t::const_iterator it2 = rVecOptions.begin();
+ if (it2 != rVecOptions.end())
+ {
+ const T1 *pOption = static_cast<T1 *>(*it2);
+ vrwValue = pOption->GetValue();
+ return MIstatus::success;
+ }
- return MIstatus::failure;
+ return MIstatus::failure;
}