1 //===-- SBTypeNameSpecifier.h --------------------------------------*- C++ 2 //-*-===// 3 // 4 // The LLVM Compiler Infrastructure 5 // 6 // This file is distributed under the University of Illinois Open Source 7 // License. See LICENSE.TXT for details. 8 // 9 //===----------------------------------------------------------------------===// 10 11 #ifndef LLDB_SBTypeNameSpecifier_h_ 12 #define LLDB_SBTypeNameSpecifier_h_ 13 14 #include "lldb/API/SBDefines.h" 15 16 namespace lldb { 17 18 class LLDB_API SBTypeNameSpecifier { 19 public: 20 SBTypeNameSpecifier(); 21 22 SBTypeNameSpecifier(const char *name, bool is_regex = false); 23 24 SBTypeNameSpecifier(SBType type); 25 26 SBTypeNameSpecifier(const lldb::SBTypeNameSpecifier &rhs); 27 28 ~SBTypeNameSpecifier(); 29 30 bool IsValid() const; 31 32 const char *GetName(); 33 34 SBType GetType(); 35 36 bool IsRegex(); 37 38 bool GetDescription(lldb::SBStream &description, 39 lldb::DescriptionLevel description_level); 40 41 lldb::SBTypeNameSpecifier &operator=(const lldb::SBTypeNameSpecifier &rhs); 42 43 bool IsEqualTo(lldb::SBTypeNameSpecifier &rhs); 44 45 bool operator==(lldb::SBTypeNameSpecifier &rhs); 46 47 bool operator!=(lldb::SBTypeNameSpecifier &rhs); 48 49 protected: 50 friend class SBDebugger; 51 friend class SBTypeCategory; 52 53 lldb::TypeNameSpecifierImplSP GetSP(); 54 55 void SetSP(const lldb::TypeNameSpecifierImplSP &type_namespec_sp); 56 57 lldb::TypeNameSpecifierImplSP m_opaque_sp; 58 59 SBTypeNameSpecifier(const lldb::TypeNameSpecifierImplSP &); 60 }; 61 62 } // namespace lldb 63 64 #endif // LLDB_SBTypeNameSpecifier_h_ 65