1 //===-- SBTypeNameSpecifier.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_API_SBTYPENAMESPECIFIER_H 11 #define LLDB_API_SBTYPENAMESPECIFIER_H 12 13 #include "lldb/API/SBDefines.h" 14 15 namespace lldb { 16 17 class LLDB_API SBTypeNameSpecifier { 18 public: 19 SBTypeNameSpecifier(); 20 21 SBTypeNameSpecifier(const char *name, bool is_regex = false); 22 23 SBTypeNameSpecifier(const char *name, 24 lldb::FormatterMatchType match_type); 25 26 SBTypeNameSpecifier(SBType type); 27 28 SBTypeNameSpecifier(const lldb::SBTypeNameSpecifier &rhs); 29 30 ~SBTypeNameSpecifier(); 31 32 explicit operator bool() const; 33 34 bool IsValid() const; 35 36 const char *GetName(); 37 38 SBType GetType(); 39 40 lldb::FormatterMatchType GetMatchType(); 41 42 bool IsRegex(); 43 44 bool GetDescription(lldb::SBStream &description, 45 lldb::DescriptionLevel description_level); 46 47 lldb::SBTypeNameSpecifier &operator=(const lldb::SBTypeNameSpecifier &rhs); 48 49 bool IsEqualTo(lldb::SBTypeNameSpecifier &rhs); 50 51 bool operator==(lldb::SBTypeNameSpecifier &rhs); 52 53 bool operator!=(lldb::SBTypeNameSpecifier &rhs); 54 55 protected: 56 friend class SBDebugger; 57 friend class SBTypeCategory; 58 59 lldb::TypeNameSpecifierImplSP GetSP(); 60 61 void SetSP(const lldb::TypeNameSpecifierImplSP &type_namespec_sp); 62 63 lldb::TypeNameSpecifierImplSP m_opaque_sp; 64 65 SBTypeNameSpecifier(const lldb::TypeNameSpecifierImplSP &); 66 }; 67 68 } // namespace lldb 69 70 #endif // LLDB_API_SBTYPENAMESPECIFIER_H 71