SBTypeCategory.h revision 256281
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#ifndef LLDB_DISABLE_PYTHON 53 uint32_t 54 GetNumSynthetics (); 55#endif 56 57 SBTypeNameSpecifier 58 GetTypeNameSpecifierForFilterAtIndex (uint32_t); 59 60 SBTypeNameSpecifier 61 GetTypeNameSpecifierForFormatAtIndex (uint32_t); 62 63 SBTypeNameSpecifier 64 GetTypeNameSpecifierForSummaryAtIndex (uint32_t); 65 66#ifndef LLDB_DISABLE_PYTHON 67 SBTypeNameSpecifier 68 GetTypeNameSpecifierForSyntheticAtIndex (uint32_t); 69#endif 70 71 SBTypeFilter 72 GetFilterForType (SBTypeNameSpecifier); 73 74 SBTypeFormat 75 GetFormatForType (SBTypeNameSpecifier); 76 77#ifndef LLDB_DISABLE_PYTHON 78 SBTypeSummary 79 GetSummaryForType (SBTypeNameSpecifier); 80#endif 81 82#ifndef LLDB_DISABLE_PYTHON 83 SBTypeSynthetic 84 GetSyntheticForType (SBTypeNameSpecifier); 85#endif 86 87#ifndef LLDB_DISABLE_PYTHON 88 SBTypeFilter 89 GetFilterAtIndex (uint32_t); 90#endif 91 92 SBTypeFormat 93 GetFormatAtIndex (uint32_t); 94 95#ifndef LLDB_DISABLE_PYTHON 96 SBTypeSummary 97 GetSummaryAtIndex (uint32_t); 98#endif 99 100#ifndef LLDB_DISABLE_PYTHON 101 SBTypeSynthetic 102 GetSyntheticAtIndex (uint32_t); 103#endif 104 105 bool 106 AddTypeFormat (SBTypeNameSpecifier, 107 SBTypeFormat); 108 109 bool 110 DeleteTypeFormat (SBTypeNameSpecifier); 111 112#ifndef LLDB_DISABLE_PYTHON 113 bool 114 AddTypeSummary (SBTypeNameSpecifier, 115 SBTypeSummary); 116#endif 117 118 bool 119 DeleteTypeSummary (SBTypeNameSpecifier); 120 121 bool 122 AddTypeFilter (SBTypeNameSpecifier, 123 SBTypeFilter); 124 125 bool 126 DeleteTypeFilter (SBTypeNameSpecifier); 127 128#ifndef LLDB_DISABLE_PYTHON 129 bool 130 AddTypeSynthetic (SBTypeNameSpecifier, 131 SBTypeSynthetic); 132 133 bool 134 DeleteTypeSynthetic (SBTypeNameSpecifier); 135#endif 136 137 lldb::SBTypeCategory & 138 operator = (const lldb::SBTypeCategory &rhs); 139 140 bool 141 operator == (lldb::SBTypeCategory &rhs); 142 143 bool 144 operator != (lldb::SBTypeCategory &rhs); 145 146 protected: 147 friend class SBDebugger; 148 149 lldb::TypeCategoryImplSP 150 GetSP (); 151 152 void 153 SetSP (const lldb::TypeCategoryImplSP &typecategory_impl_sp); 154 155 TypeCategoryImplSP m_opaque_sp; 156 157 SBTypeCategory (const lldb::TypeCategoryImplSP &); 158 159 SBTypeCategory (const char*); 160 161 bool 162 IsDefaultCategory(); 163 164 }; 165 166} // namespace lldb 167 168#endif // LLDB_SBTypeCategory_h_ 169