SBTypeNameSpecifier.h revision 16376ed044df3ee70fcf69e19f06af01e71a8e9a
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
15namespace 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 (const lldb::SBTypeNameSpecifier &rhs);
27
28        ~SBTypeNameSpecifier ();
29
30        bool
31        IsValid() const;
32
33        const char*
34        GetName();
35
36        bool
37        IsRegex();
38
39        bool
40        GetDescription (lldb::SBStream &description,
41                        lldb::DescriptionLevel description_level);
42
43        lldb::SBTypeNameSpecifier &
44        operator = (const lldb::SBTypeNameSpecifier &rhs);
45
46        bool
47        IsEqualTo (lldb::SBTypeNameSpecifier &rhs);
48
49        bool
50        operator == (lldb::SBTypeNameSpecifier &rhs);
51
52        bool
53        operator != (lldb::SBTypeNameSpecifier &rhs);
54
55    protected:
56        friend class SBTypeCategory;
57
58        lldb::TypeNameSpecifierImplSP
59        GetSP ();
60
61        void
62        SetSP (const lldb::TypeNameSpecifierImplSP &type_namespec_sp);
63
64        lldb::TypeNameSpecifierImplSP m_opaque_sp;
65
66        SBTypeNameSpecifier (const lldb::TypeNameSpecifierImplSP &);
67    };
68
69} // namespace lldb
70
71#endif // LLDB_SBTypeNameSpecifier_h_
72