1 //===-- SBTypeFormat.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_SBTypeFormat_h_ 12 #define LLDB_SBTypeFormat_h_ 13 14 #include "lldb/API/SBDefines.h" 15 16 namespace lldb { 17 18 class LLDB_API SBTypeFormat { 19 public: 20 SBTypeFormat(); 21 22 SBTypeFormat(lldb::Format format, 23 uint32_t options = 0); // see lldb::eTypeOption values 24 25 SBTypeFormat(const char *type, 26 uint32_t options = 0); // see lldb::eTypeOption values 27 28 SBTypeFormat(const lldb::SBTypeFormat &rhs); 29 30 ~SBTypeFormat(); 31 32 bool IsValid() const; 33 34 lldb::Format GetFormat(); 35 36 const char *GetTypeName(); 37 38 uint32_t GetOptions(); 39 40 void SetFormat(lldb::Format); 41 42 void SetTypeName(const char *); 43 44 void SetOptions(uint32_t); 45 46 bool GetDescription(lldb::SBStream &description, 47 lldb::DescriptionLevel description_level); 48 49 lldb::SBTypeFormat &operator=(const lldb::SBTypeFormat &rhs); 50 51 bool IsEqualTo(lldb::SBTypeFormat &rhs); 52 53 bool operator==(lldb::SBTypeFormat &rhs); 54 55 bool operator!=(lldb::SBTypeFormat &rhs); 56 57 protected: 58 friend class SBDebugger; 59 friend class SBTypeCategory; 60 friend class SBValue; 61 62 lldb::TypeFormatImplSP GetSP(); 63 64 void SetSP(const lldb::TypeFormatImplSP &typeformat_impl_sp); 65 66 lldb::TypeFormatImplSP m_opaque_sp; 67 68 SBTypeFormat(const lldb::TypeFormatImplSP &); 69 70 enum class Type { eTypeKeepSame, eTypeFormat, eTypeEnum }; 71 72 bool CopyOnWrite_Impl(Type); 73 }; 74 75 } // namespace lldb 76 77 #endif // LLDB_SBTypeFormat_h_ 78