]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/tools/lldb-mi/MICmdArgContext.h
Merge ^/head r274961 through r276472.
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / tools / lldb-mi / MICmdArgContext.h
1 //===-- MICmdArgContext.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 //++
11 // File:                MICmdArgContext.h
12 //
13 // Overview:    CMICmdArgContext interface.
14 //
15 // Environment: Compilers:      Visual C++ 12.
16 //                                                      gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
17 //                              Libraries:      See MIReadmetxt. 
18 //
19 // Copyright:   None.
20 //--
21
22 #pragma once
23
24 // In-house headers:
25 #include "MIUtilString.h"  
26
27 //++ ============================================================================
28 // Details:     MI common code class. Command arguments and options string. Holds
29 //                      the context string.
30 //                      Based on the Interpreter pattern.
31 // Gotchas:     None.
32 // Authors:     Illya Rudkin 14/04/2014.
33 // Changes:     None.
34 //--
35 class CMICmdArgContext
36 {
37 // Methods:
38 public:
39         /* ctor */      CMICmdArgContext( void );
40         /* ctor */      CMICmdArgContext( const CMIUtilString & vrCmdLineArgsRaw );
41         //
42         const CMIUtilString &                   GetArgsLeftToParse( void ) const;
43         MIuint                                                  GetNumberArgsPresent( void ) const;
44         CMIUtilString::VecString_t              GetArgs( void ) const;
45         bool                                                    IsEmpty( void ) const;
46         bool                                                    RemoveArg( const CMIUtilString & vArg );
47         bool                                                    RemoveArgAtPos( const CMIUtilString & vArg, const MIuint nArgIndex );
48         //
49         CMICmdArgContext & operator= ( const CMICmdArgContext & vOther );
50         
51 // Overridden:
52 public:
53         // From CMIUtilString
54         /* dtor */ virtual ~CMICmdArgContext( void );
55
56 // Attributes:
57 private:
58         CMIUtilString           m_strCmdArgsAndOptions;
59         const MIchar            m_constCharSpace;
60         const CMIUtilString     m_constStrSpace;
61 };