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(SBType type); 24 25 SBTypeNameSpecifier(const lldb::SBTypeNameSpecifier &rhs); 26 27 ~SBTypeNameSpecifier(); 28 29 explicit operator bool() const; 30 31 bool IsValid() const; 32 33 const char *GetName(); 34 35 SBType GetType(); 36 37 bool IsRegex(); 38 39 bool GetDescription(lldb::SBStream &description, 40 lldb::DescriptionLevel description_level); 41 42 lldb::SBTypeNameSpecifier &operator=(const lldb::SBTypeNameSpecifier &rhs); 43 44 bool IsEqualTo(lldb::SBTypeNameSpecifier &rhs); 45 46 bool operator==(lldb::SBTypeNameSpecifier &rhs); 47 48 bool operator!=(lldb::SBTypeNameSpecifier &rhs); 49 50 protected: 51 friend class SBDebugger; 52 friend class SBTypeCategory; 53 54 lldb::TypeNameSpecifierImplSP GetSP(); 55 56 void SetSP(const lldb::TypeNameSpecifierImplSP &type_namespec_sp); 57 58 lldb::TypeNameSpecifierImplSP m_opaque_sp; 59 60 SBTypeNameSpecifier(const lldb::TypeNameSpecifierImplSP &); 61 }; 62 63 } // namespace lldb 64 65 #endif // LLDB_API_SBTYPENAMESPECIFIER_H 66