]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBTypeNameSpecifier.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / llvm / tools / lldb / include / lldb / API / SBTypeNameSpecifier.h
1 //===-- SBTypeNameSpecifier.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 #ifndef LLDB_SBTypeNameSpecifier_h_
11 #define LLDB_SBTypeNameSpecifier_h_
12
13 #include "lldb/API/SBDefines.h"
14
15 namespace lldb {
16     
17     class SBTypeNameSpecifier
18     {
19     public:
20         
21         SBTypeNameSpecifier();
22         
23         SBTypeNameSpecifier (const char* name,
24                              bool is_regex = false);
25
26         SBTypeNameSpecifier (SBType type);
27         
28         SBTypeNameSpecifier (const lldb::SBTypeNameSpecifier &rhs);
29         
30         ~SBTypeNameSpecifier ();
31         
32         bool
33         IsValid() const;
34         
35         const char*
36         GetName();
37         
38         SBType
39         GetType ();
40         
41         bool
42         IsRegex();
43         
44         bool
45         GetDescription (lldb::SBStream &description, 
46                         lldb::DescriptionLevel description_level);
47         
48         lldb::SBTypeNameSpecifier &
49         operator = (const lldb::SBTypeNameSpecifier &rhs);
50         
51         bool
52         IsEqualTo (lldb::SBTypeNameSpecifier &rhs);
53
54         bool
55         operator == (lldb::SBTypeNameSpecifier &rhs);
56         
57         bool
58         operator != (lldb::SBTypeNameSpecifier &rhs);
59         
60     protected:
61         friend class SBDebugger;
62         friend class SBTypeCategory;
63         
64         lldb::TypeNameSpecifierImplSP
65         GetSP ();
66         
67         void
68         SetSP (const lldb::TypeNameSpecifierImplSP &type_namespec_sp);    
69         
70         lldb::TypeNameSpecifierImplSP m_opaque_sp;
71         
72         SBTypeNameSpecifier (const lldb::TypeNameSpecifierImplSP &);
73     };
74     
75 } // namespace lldb
76
77 #endif // LLDB_SBTypeNameSpecifier_h_