]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/API/SBTypeEnumMember.h
Merge ACPICA 20150619.
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / API / SBTypeEnumMember.h
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 SBTypeEnumMember
19 {
20 public:
21     SBTypeEnumMember ();
22
23     SBTypeEnumMember (const SBTypeEnumMember& rhs);
24
25     ~SBTypeEnumMember();
26
27     SBTypeEnumMember&
28     operator = (const SBTypeEnumMember& rhs);
29
30     bool
31     IsValid() const;
32
33     int64_t
34     GetValueAsSigned();
35
36     uint64_t
37     GetValueAsUnsigned();
38
39     const char *
40     GetName ();
41
42     lldb::SBType
43     GetType ();
44
45     bool
46     GetDescription (lldb::SBStream &description,
47                     lldb::DescriptionLevel description_level);
48
49 protected:
50     friend class SBType;
51     friend class SBTypeEnumMemberList;
52
53     void
54     reset (lldb_private::TypeEnumMemberImpl *);
55
56     lldb_private::TypeEnumMemberImpl &
57     ref ();
58
59     const lldb_private::TypeEnumMemberImpl &
60     ref () const;
61
62     lldb::TypeEnumMemberImplSP m_opaque_sp;
63
64     SBTypeEnumMember (const lldb::TypeEnumMemberImplSP &);
65 };
66
67 class SBTypeEnumMemberList
68 {
69 public:
70     SBTypeEnumMemberList();
71
72     SBTypeEnumMemberList(const SBTypeEnumMemberList& rhs);
73
74     ~SBTypeEnumMemberList();
75
76     SBTypeEnumMemberList&
77     operator = (const SBTypeEnumMemberList& rhs);
78
79     bool
80     IsValid();
81
82     void
83     Append (SBTypeEnumMember entry);
84
85     SBTypeEnumMember
86     GetTypeEnumMemberAtIndex (uint32_t index);
87
88     uint32_t
89     GetSize();
90
91
92 private:
93     std::unique_ptr<lldb_private::TypeEnumMemberListImpl> m_opaque_ap;
94 };
95
96 } // namespace lldb
97
98 #endif // LLDB_SBTypeEnumMember_h_