|  | //===-- MICmdArgContext.h ---------------------------------------*- C++ -*-===// | 
|  | // | 
|  | //                     The LLVM Compiler Infrastructure | 
|  | // | 
|  | // This file is distributed under the University of Illinois Open Source | 
|  | // License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #pragma once | 
|  |  | 
|  | // In-house headers: | 
|  | #include "MIUtilString.h" | 
|  |  | 
|  | //++ | 
|  | //============================================================================ | 
|  | // Details: MI common code class. Command arguments and options string. Holds | 
|  | //          the context string. | 
|  | //          Based on the Interpreter pattern. | 
|  | //-- | 
|  | class CMICmdArgContext { | 
|  | // Methods: | 
|  | public: | 
|  | /* ctor */ CMICmdArgContext(); | 
|  | /* ctor */ CMICmdArgContext(const CMIUtilString &vrCmdLineArgsRaw); | 
|  | // | 
|  | const CMIUtilString &GetArgsLeftToParse() const; | 
|  | size_t GetNumberArgsPresent() const; | 
|  | CMIUtilString::VecString_t GetArgs() const; | 
|  | bool IsEmpty() const; | 
|  | bool RemoveArg(const CMIUtilString &vArg); | 
|  | bool RemoveArgAtPos(const CMIUtilString &vArg, size_t nArgIndex); | 
|  | // | 
|  | CMICmdArgContext &operator=(const CMICmdArgContext &vOther); | 
|  |  | 
|  | // Overridden: | 
|  | public: | 
|  | // From CMIUtilString | 
|  | /* dtor */ virtual ~CMICmdArgContext(); | 
|  |  | 
|  | // Attributes: | 
|  | private: | 
|  | CMIUtilString m_strCmdArgsAndOptions; | 
|  | }; |