blob: fa8ec8a54773332e4780da6a67780d8aeb0fb016 [file] [log] [blame]
Ilia K27e2c052015-05-15 09:46:28 +00001//===-- MICmdArgValPrintValues.h --------------------------------*- 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#pragma once
11
12// In-house headers:
13#include "MICmdArgValBase.h"
14
15// Declarations:
16class CMICmdArgContext;
17
18//++ ============================================================================
19// Details: MI common code class. Command argument class. Arguments object
20// needing specialization derived from the CMICmdArgValBase class.
21// An argument knows what type of argument it is and how it is to
22// interpret the options (context) string to find and validate a matching
23// argument and so extract a value from it. The print-values looks like:
24// 0 or --no-values
25// 1 or --all-values
26// 2 or --simple-values
27// Based on the Interpreter pattern.
28//--
29class CMICmdArgValPrintValues : public CMICmdArgValBaseTemplate<MIuint>
30{
31 // Methods:
32 public:
Bruce Mitchenere2453af2015-08-04 10:24:20 +000033 /* ctor */ CMICmdArgValPrintValues();
Ilia K27e2c052015-05-15 09:46:28 +000034 /* ctor */ CMICmdArgValPrintValues(const CMIUtilString &vrArgName, const bool vbMandatory, const bool vbHandleByCmd);
35 //
36 bool IsArgPrintValues(const CMIUtilString &vrTxt) const;
37
38 // Overridden:
39 public:
40 // From CMICmdArgValBase
Bruce Mitchenere2453af2015-08-04 10:24:20 +000041 /* dtor */ ~CMICmdArgValPrintValues() override;
Ilia K27e2c052015-05-15 09:46:28 +000042 // From CMICmdArgSet::IArg
Bruce Mitchener88205302015-07-06 15:48:55 +000043 bool Validate(CMICmdArgContext &vArgContext) override;
Ilia K27e2c052015-05-15 09:46:28 +000044
45 // Methods:
46 private:
47 bool ExtractPrintValues(const CMIUtilString &vrTxt);
Bruce Mitchenere2453af2015-08-04 10:24:20 +000048 MIuint GetPrintValues() const;
Ilia K27e2c052015-05-15 09:46:28 +000049
50 // Attributes:
51 private:
52 MIuint m_nPrintValues;
53};