]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - include/lldb/API/SBTypeNameSpecifier.h
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / include / lldb / API / SBTypeNameSpecifier.h
1 //===-- SBTypeNameSpecifier.h --------------------------------------*- C++
2 //-*-===//
3 //
4 //                     The LLVM Compiler Infrastructure
5 //
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10
11 #ifndef LLDB_SBTypeNameSpecifier_h_
12 #define LLDB_SBTypeNameSpecifier_h_
13
14 #include "lldb/API/SBDefines.h"
15
16 namespace lldb {
17
18 class LLDB_API SBTypeNameSpecifier {
19 public:
20   SBTypeNameSpecifier();
21
22   SBTypeNameSpecifier(const char *name, bool is_regex = false);
23
24   SBTypeNameSpecifier(SBType type);
25
26   SBTypeNameSpecifier(const lldb::SBTypeNameSpecifier &rhs);
27
28   ~SBTypeNameSpecifier();
29
30   bool IsValid() const;
31
32   const char *GetName();
33
34   SBType GetType();
35
36   bool IsRegex();
37
38   bool GetDescription(lldb::SBStream &description,
39                       lldb::DescriptionLevel description_level);
40
41   lldb::SBTypeNameSpecifier &operator=(const lldb::SBTypeNameSpecifier &rhs);
42
43   bool IsEqualTo(lldb::SBTypeNameSpecifier &rhs);
44
45   bool operator==(lldb::SBTypeNameSpecifier &rhs);
46
47   bool operator!=(lldb::SBTypeNameSpecifier &rhs);
48
49 protected:
50   friend class SBDebugger;
51   friend class SBTypeCategory;
52
53   lldb::TypeNameSpecifierImplSP GetSP();
54
55   void SetSP(const lldb::TypeNameSpecifierImplSP &type_namespec_sp);
56
57   lldb::TypeNameSpecifierImplSP m_opaque_sp;
58
59   SBTypeNameSpecifier(const lldb::TypeNameSpecifierImplSP &);
60 };
61
62 } // namespace lldb
63
64 #endif // LLDB_SBTypeNameSpecifier_h_