1061da546Spatrick //===-- SBTypeFilter.h --------------------------------------------*- C++ 2061da546Spatrick //-*-===// 3061da546Spatrick // 4061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5061da546Spatrick // See https://llvm.org/LICENSE.txt for license information. 6061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7061da546Spatrick // 8061da546Spatrick //===----------------------------------------------------------------------===// 9061da546Spatrick 10*dda28197Spatrick #ifndef LLDB_API_SBTYPEFILTER_H 11*dda28197Spatrick #define LLDB_API_SBTYPEFILTER_H 12061da546Spatrick 13061da546Spatrick #include "lldb/API/SBDefines.h" 14061da546Spatrick 15061da546Spatrick namespace lldb { 16061da546Spatrick 17061da546Spatrick class LLDB_API SBTypeFilter { 18061da546Spatrick public: 19061da546Spatrick SBTypeFilter(); 20061da546Spatrick 21061da546Spatrick SBTypeFilter(uint32_t options); // see lldb::eTypeOption values 22061da546Spatrick 23061da546Spatrick SBTypeFilter(const lldb::SBTypeFilter &rhs); 24061da546Spatrick 25061da546Spatrick ~SBTypeFilter(); 26061da546Spatrick 27061da546Spatrick explicit operator bool() const; 28061da546Spatrick 29061da546Spatrick bool IsValid() const; 30061da546Spatrick 31061da546Spatrick uint32_t GetNumberOfExpressionPaths(); 32061da546Spatrick 33061da546Spatrick const char *GetExpressionPathAtIndex(uint32_t i); 34061da546Spatrick 35061da546Spatrick bool ReplaceExpressionPathAtIndex(uint32_t i, const char *item); 36061da546Spatrick 37061da546Spatrick void AppendExpressionPath(const char *item); 38061da546Spatrick 39061da546Spatrick void Clear(); 40061da546Spatrick 41061da546Spatrick uint32_t GetOptions(); 42061da546Spatrick 43061da546Spatrick void SetOptions(uint32_t); 44061da546Spatrick 45061da546Spatrick bool GetDescription(lldb::SBStream &description, 46061da546Spatrick lldb::DescriptionLevel description_level); 47061da546Spatrick 48061da546Spatrick lldb::SBTypeFilter &operator=(const lldb::SBTypeFilter &rhs); 49061da546Spatrick 50061da546Spatrick bool IsEqualTo(lldb::SBTypeFilter &rhs); 51061da546Spatrick 52061da546Spatrick bool operator==(lldb::SBTypeFilter &rhs); 53061da546Spatrick 54061da546Spatrick bool operator!=(lldb::SBTypeFilter &rhs); 55061da546Spatrick 56061da546Spatrick protected: 57061da546Spatrick friend class SBDebugger; 58061da546Spatrick friend class SBTypeCategory; 59061da546Spatrick friend class SBValue; 60061da546Spatrick 61061da546Spatrick lldb::TypeFilterImplSP GetSP(); 62061da546Spatrick 63061da546Spatrick void SetSP(const lldb::TypeFilterImplSP &typefilter_impl_sp); 64061da546Spatrick 65061da546Spatrick lldb::TypeFilterImplSP m_opaque_sp; 66061da546Spatrick 67061da546Spatrick SBTypeFilter(const lldb::TypeFilterImplSP &); 68061da546Spatrick 69061da546Spatrick bool CopyOnWrite_Impl(); 70061da546Spatrick }; 71061da546Spatrick 72061da546Spatrick } // namespace lldb 73061da546Spatrick 74*dda28197Spatrick #endif // LLDB_API_SBTYPEFILTER_H 75