diff options
Diffstat (limited to 'tools/lldb-mi/MICmdArgValOptionLong.h')
-rw-r--r-- | tools/lldb-mi/MICmdArgValOptionLong.h | 141 |
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; } |