1 //===-- SBTypeFilter.h --------------------------------------------*- C++ 2 //-*-===// 3 // 4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5 // See https://llvm.org/LICENSE.txt for license information. 6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLDB_SBTypeFilter_h_ 11 #define LLDB_SBTypeFilter_h_ 12 13 #include "lldb/API/SBDefines.h" 14 15 namespace lldb { 16 17 class LLDB_API SBTypeFilter { 18 public: 19 SBTypeFilter(); 20 21 SBTypeFilter(uint32_t options); // see lldb::eTypeOption values 22 23 SBTypeFilter(const lldb::SBTypeFilter &rhs); 24 25 ~SBTypeFilter(); 26 27 explicit operator bool() const; 28 29 bool IsValid() const; 30 31 uint32_t GetNumberOfExpressionPaths(); 32 33 const char *GetExpressionPathAtIndex(uint32_t i); 34 35 bool ReplaceExpressionPathAtIndex(uint32_t i, const char *item); 36 37 void AppendExpressionPath(const char *item); 38 39 void Clear(); 40 41 uint32_t GetOptions(); 42 43 void SetOptions(uint32_t); 44 45 bool GetDescription(lldb::SBStream &description, 46 lldb::DescriptionLevel description_level); 47 48 lldb::SBTypeFilter &operator=(const lldb::SBTypeFilter &rhs); 49 50 bool IsEqualTo(lldb::SBTypeFilter &rhs); 51 52 bool operator==(lldb::SBTypeFilter &rhs); 53 54 bool operator!=(lldb::SBTypeFilter &rhs); 55 56 protected: 57 friend class SBDebugger; 58 friend class SBTypeCategory; 59 friend class SBValue; 60 61 lldb::TypeFilterImplSP GetSP(); 62 63 void SetSP(const lldb::TypeFilterImplSP &typefilter_impl_sp); 64 65 lldb::TypeFilterImplSP m_opaque_sp; 66 67 SBTypeFilter(const lldb::TypeFilterImplSP &); 68 69 bool CopyOnWrite_Impl(); 70 }; 71 72 } // namespace lldb 73 74 #endif // LLDB_SBTypeFilter_h_ 75