1 2 //===-- SBTypeEnumMember.h --------------------------------------*- C++ -*-===// 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_SBTypeEnumMember_h_ 12 #define LLDB_SBTypeEnumMember_h_ 13 14 #include "lldb/API/SBDefines.h" 15 16 namespace lldb { 17 18 class LLDB_API SBTypeEnumMember { 19 public: 20 SBTypeEnumMember(); 21 22 SBTypeEnumMember(const SBTypeEnumMember &rhs); 23 24 ~SBTypeEnumMember(); 25 26 SBTypeEnumMember &operator=(const SBTypeEnumMember &rhs); 27 28 bool IsValid() const; 29 30 int64_t GetValueAsSigned(); 31 32 uint64_t GetValueAsUnsigned(); 33 34 const char *GetName(); 35 36 lldb::SBType GetType(); 37 38 bool GetDescription(lldb::SBStream &description, 39 lldb::DescriptionLevel description_level); 40 41 protected: 42 friend class SBType; 43 friend class SBTypeEnumMemberList; 44 45 void reset(lldb_private::TypeEnumMemberImpl *); 46 47 lldb_private::TypeEnumMemberImpl &ref(); 48 49 const lldb_private::TypeEnumMemberImpl &ref() const; 50 51 lldb::TypeEnumMemberImplSP m_opaque_sp; 52 53 SBTypeEnumMember(const lldb::TypeEnumMemberImplSP &); 54 }; 55 56 class SBTypeEnumMemberList { 57 public: 58 SBTypeEnumMemberList(); 59 60 SBTypeEnumMemberList(const SBTypeEnumMemberList &rhs); 61 62 ~SBTypeEnumMemberList(); 63 64 SBTypeEnumMemberList &operator=(const SBTypeEnumMemberList &rhs); 65 66 bool IsValid(); 67 68 void Append(SBTypeEnumMember entry); 69 70 SBTypeEnumMember GetTypeEnumMemberAtIndex(uint32_t index); 71 72 uint32_t GetSize(); 73 74 private: 75 std::unique_ptr<lldb_private::TypeEnumMemberListImpl> m_opaque_ap; 76 }; 77 78 } // namespace lldb 79 80 #endif // LLDB_SBTypeEnumMember_h_ 81