2 //===-- SBTypeEnumMember.h --------------------------------------*- C++ -*-===//
4 // The LLVM Compiler Infrastructure
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
9 //===----------------------------------------------------------------------===//
11 #ifndef LLDB_SBTypeEnumMember_h_
12 #define LLDB_SBTypeEnumMember_h_
14 #include "lldb/API/SBDefines.h"
18 class LLDB_API SBTypeEnumMember {
22 SBTypeEnumMember(const SBTypeEnumMember &rhs);
26 SBTypeEnumMember &operator=(const SBTypeEnumMember &rhs);
30 int64_t GetValueAsSigned();
32 uint64_t GetValueAsUnsigned();
34 const char *GetName();
36 lldb::SBType GetType();
38 bool GetDescription(lldb::SBStream &description,
39 lldb::DescriptionLevel description_level);
43 friend class SBTypeEnumMemberList;
45 void reset(lldb_private::TypeEnumMemberImpl *);
47 lldb_private::TypeEnumMemberImpl &ref();
49 const lldb_private::TypeEnumMemberImpl &ref() const;
51 lldb::TypeEnumMemberImplSP m_opaque_sp;
53 SBTypeEnumMember(const lldb::TypeEnumMemberImplSP &);
56 class SBTypeEnumMemberList {
58 SBTypeEnumMemberList();
60 SBTypeEnumMemberList(const SBTypeEnumMemberList &rhs);
62 ~SBTypeEnumMemberList();
64 SBTypeEnumMemberList &operator=(const SBTypeEnumMemberList &rhs);
68 void Append(SBTypeEnumMember entry);
70 SBTypeEnumMember GetTypeEnumMemberAtIndex(uint32_t index);
75 std::unique_ptr<lldb_private::TypeEnumMemberListImpl> m_opaque_ap;
80 #endif // LLDB_SBTypeEnumMember_h_