MICmdArgValPrintValues.cpp revision 303975
1//===-- MICmdArgValPrintValues.cpp ------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// In-house headers: 11#include "MICmdArgValPrintValues.h" 12#include "MICmdArgContext.h" 13 14//++ ------------------------------------------------------------------------------------ 15// Details: CMICmdArgValPrintValues constructor. 16// Type: Method. 17// Args: None. 18// Return: None. 19// Throws: None. 20//-- 21CMICmdArgValPrintValues::CMICmdArgValPrintValues() 22 : m_nPrintValues(0) 23{ 24} 25 26//++ ------------------------------------------------------------------------------------ 27// Details: CMICmdArgValPrintValues constructor. 28// Type: Method. 29// Args: vrArgName - (R) Argument's name to search by. 30// vbMandatory - (R) True = Yes must be present, false = optional argument. 31// vbHandleByCmd - (R) True = Command processes *this option, false = not handled. 32// Return: None. 33// Throws: None. 34//-- 35CMICmdArgValPrintValues::CMICmdArgValPrintValues(const CMIUtilString &vrArgName, const bool vbMandatory, const bool vbHandleByCmd) 36 : CMICmdArgValBaseTemplate(vrArgName, vbMandatory, vbHandleByCmd) 37 , m_nPrintValues(0) 38{ 39} 40 41//++ ------------------------------------------------------------------------------------ 42// Details: CMICmdArgValPrintValues destructor. 43// Type: Overridden. 44// Args: None. 45// Return: None. 46// Throws: None. 47//-- 48CMICmdArgValPrintValues::~CMICmdArgValPrintValues() 49{ 50} 51 52//++ ------------------------------------------------------------------------------------ 53// Details: Parse the command's argument options string and try to extract the value *this 54// argument is looking for. 55// Type: Overridden. 56// Args: vwArgContext - (RW) The command's argument options string. 57// Return: MIstatus::success - Functional succeeded. 58// MIstatus::failure - Functional failed. 59// Throws: None. 60//-- 61bool 62CMICmdArgValPrintValues::Validate(CMICmdArgContext &vwArgContext) 63{ 64 if (vwArgContext.IsEmpty()) 65 return m_bMandatory ? MIstatus::failure : MIstatus::success; 66 67 const CMIUtilString strArg(vwArgContext.GetArgs()[0]); 68 if (IsArgPrintValues(strArg) && ExtractPrintValues(strArg)) 69 { 70 m_bFound = true; 71 m_bValid = true; 72 m_argValue = GetPrintValues(); 73 vwArgContext.RemoveArg(strArg); 74 return MIstatus::success; 75 } 76 77 return MIstatus::failure; 78} 79 80//++ ------------------------------------------------------------------------------------ 81// Details: Examine the string and determine if it is a valid string type argument. 82// Type: Method. 83// Args: vrTxt - (R) Some text. 84// Return: bool - True = yes valid arg, false = no. 85// Throws: None. 86//-- 87bool 88CMICmdArgValPrintValues::IsArgPrintValues(const CMIUtilString &vrTxt) const 89{ 90 return (CMIUtilString::Compare(vrTxt, "0") || CMIUtilString::Compare(vrTxt, "--no-values") || 91 CMIUtilString::Compare(vrTxt, "1") || CMIUtilString::Compare(vrTxt, "--all-values") || 92 CMIUtilString::Compare(vrTxt, "2") || CMIUtilString::Compare(vrTxt, "--simple-values")); 93} 94 95//++ ------------------------------------------------------------------------------------ 96// Details: Extract the print-values from the print-values argument. 97// Type: Method. 98// Args: vrTxt - (R) Some text. 99// Return: MIstatus::success - Functional succeeded. 100// MIstatus::failure - Functional failed. 101// Throws: None. 102//-- 103bool 104CMICmdArgValPrintValues::ExtractPrintValues(const CMIUtilString &vrTxt) 105{ 106 if (CMIUtilString::Compare(vrTxt, "0") || CMIUtilString::Compare(vrTxt, "--no-values")) 107 m_nPrintValues = 0; 108 else if (CMIUtilString::Compare(vrTxt, "1") || CMIUtilString::Compare(vrTxt, "--all-values")) 109 m_nPrintValues = 1; 110 else if (CMIUtilString::Compare(vrTxt, "2") || CMIUtilString::Compare(vrTxt, "--simple-values")) 111 m_nPrintValues = 2; 112 else 113 return MIstatus::failure; 114 115 return MIstatus::success; 116} 117 118//++ ------------------------------------------------------------------------------------ 119// Details: Retrieve the print-values found in the argument. 120// Type: Method. 121// Args: None. 122// Return: MIuint - The print-values. 123// Throws: None. 124//-- 125MIuint 126CMICmdArgValPrintValues::GetPrintValues() const 127{ 128 return m_nPrintValues; 129} 130