2 //===-- SBTypeEnumMember.h --------------------------------------*- C++ -*-===//
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
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_SBTypeEnumMember_h_
11 #define LLDB_SBTypeEnumMember_h_
13 #include "lldb/API/SBDefines.h"
17 class LLDB_API SBTypeEnumMember {
21 SBTypeEnumMember(const SBTypeEnumMember &rhs);
25 SBTypeEnumMember &operator=(const SBTypeEnumMember &rhs);
27 explicit operator bool() const;
31 int64_t GetValueAsSigned();
33 uint64_t GetValueAsUnsigned();
35 const char *GetName();
37 lldb::SBType GetType();
39 bool GetDescription(lldb::SBStream &description,
40 lldb::DescriptionLevel description_level);
44 friend class SBTypeEnumMemberList;
46 void reset(lldb_private::TypeEnumMemberImpl *);
48 lldb_private::TypeEnumMemberImpl &ref();
50 const lldb_private::TypeEnumMemberImpl &ref() const;
52 lldb::TypeEnumMemberImplSP m_opaque_sp;
54 SBTypeEnumMember(const lldb::TypeEnumMemberImplSP &);
57 class SBTypeEnumMemberList {
59 SBTypeEnumMemberList();
61 SBTypeEnumMemberList(const SBTypeEnumMemberList &rhs);
63 ~SBTypeEnumMemberList();
65 SBTypeEnumMemberList &operator=(const SBTypeEnumMemberList &rhs);
67 explicit operator bool() const;
71 void Append(SBTypeEnumMember entry);
73 SBTypeEnumMember GetTypeEnumMemberAtIndex(uint32_t index);
78 std::unique_ptr<lldb_private::TypeEnumMemberListImpl> m_opaque_up;
83 #endif // LLDB_SBTypeEnumMember_h_