SBTypeCategory.h revision 16376ed044df3ee70fcf69e19f06af01e71a8e9a
1//===-- SBTypeCategory.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_SBTypeCategory_h_
11#define LLDB_SBTypeCategory_h_
12
13#include "lldb/API/SBDefines.h"
14
15namespace lldb {
16
17    class SBTypeCategory
18    {
19    public:
20
21        SBTypeCategory();
22
23        SBTypeCategory (const lldb::SBTypeCategory &rhs);
24
25        ~SBTypeCategory ();
26
27        bool
28        IsValid() const;
29
30        bool
31        GetEnabled ();
32
33        void
34        SetEnabled (bool);
35
36        const char*
37        GetName();
38
39        bool
40        GetDescription (lldb::SBStream &description,
41                        lldb::DescriptionLevel description_level);
42
43        uint32_t
44        GetNumFormats ();
45
46        uint32_t
47        GetNumSummaries ();
48
49        uint32_t
50        GetNumFilters ();
51
52        uint32_t
53        GetNumSynthetics ();
54
55        SBTypeNameSpecifier
56        GetTypeNameSpecifierForFilterAtIndex (uint32_t);
57
58        SBTypeNameSpecifier
59        GetTypeNameSpecifierForFormatAtIndex (uint32_t);
60
61        SBTypeNameSpecifier
62        GetTypeNameSpecifierForSummaryAtIndex (uint32_t);
63
64        SBTypeNameSpecifier
65        GetTypeNameSpecifierForSyntheticAtIndex (uint32_t);
66
67        SBTypeFilter
68        GetFilterForType (SBTypeNameSpecifier);
69
70        SBTypeFormat
71        GetFormatForType (SBTypeNameSpecifier);
72
73        SBTypeSummary
74        GetSummaryForType (SBTypeNameSpecifier);
75
76        SBTypeSynthetic
77        GetSyntheticForType (SBTypeNameSpecifier);
78
79        SBTypeFilter
80        GetFilterAtIndex (uint32_t);
81
82        SBTypeFormat
83        GetFormatAtIndex (uint32_t);
84
85        SBTypeSummary
86        GetSummaryAtIndex (uint32_t);
87
88        SBTypeSynthetic
89        GetSyntheticAtIndex (uint32_t);
90
91        bool
92        AddTypeFormat (SBTypeNameSpecifier,
93                       SBTypeFormat);
94
95        bool
96        DeleteTypeFormat (SBTypeNameSpecifier);
97
98        bool
99        AddTypeSummary (SBTypeNameSpecifier,
100                        SBTypeSummary);
101
102        bool
103        DeleteTypeSummary (SBTypeNameSpecifier);
104
105        bool
106        AddTypeFilter (SBTypeNameSpecifier,
107                       SBTypeFilter);
108
109        bool
110        DeleteTypeFilter (SBTypeNameSpecifier);
111
112        bool
113        AddTypeSynthetic (SBTypeNameSpecifier,
114                          SBTypeSynthetic);
115
116        bool
117        DeleteTypeSynthetic (SBTypeNameSpecifier);
118
119        lldb::SBTypeCategory &
120        operator = (const lldb::SBTypeCategory &rhs);
121
122        bool
123        operator == (lldb::SBTypeCategory &rhs);
124
125        bool
126        operator != (lldb::SBTypeCategory &rhs);
127
128    protected:
129        friend class SBDebugger;
130
131        lldb::TypeCategoryImplSP
132        GetSP ();
133
134        void
135        SetSP (const lldb::TypeCategoryImplSP &typecategory_impl_sp);
136
137        TypeCategoryImplSP m_opaque_sp;
138
139        SBTypeCategory (const lldb::TypeCategoryImplSP &);
140
141        SBTypeCategory (const char*);
142
143        bool
144        IsDefaultCategory();
145
146    };
147
148} // namespace lldb
149
150#endif // LLDB_SBTypeCategory_h_
151