1 //===-- SBType.h ------------------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLDB_SBType_h_
11 #define LLDB_SBType_h_
13 #include "lldb/API/SBDefines.h"
24 SBTypeMember (const lldb::SBTypeMember& rhs);
29 operator = (const lldb::SBTypeMember& rhs);
50 GetBitfieldSizeInBits();
53 GetDescription (lldb::SBStream &description,
54 lldb::DescriptionLevel description_level);
60 reset (lldb_private::TypeMemberImpl *);
62 lldb_private::TypeMemberImpl &
65 const lldb_private::TypeMemberImpl &
68 std::unique_ptr<lldb_private::TypeMemberImpl> m_opaque_ap;
77 SBType (const lldb::SBType &rhs);
97 IsPolymorphicClass ();
109 GetDereferencedType();
112 GetUnqualifiedType();
116 // Get the "lldb::BasicType" enumeration for a type. If a type is not a basic
117 // type eBasicTypeInvalid will be returned
121 // The call below confusing and should really be renamed to "CreateBasicType"
123 GetBasicType(lldb::BasicType type);
126 GetNumberOfFields ();
129 GetNumberOfDirectBaseClasses ();
132 GetNumberOfVirtualBaseClasses ();
135 GetFieldAtIndex (uint32_t idx);
138 GetDirectBaseClassAtIndex (uint32_t idx);
141 GetVirtualBaseClassAtIndex (uint32_t idx);
144 GetNumberOfTemplateArguments ();
147 GetTemplateArgumentType (uint32_t idx);
149 lldb::TemplateArgumentKind
150 GetTemplateArgumentKind (uint32_t idx);
153 GetFunctionReturnType ();
156 GetFunctionArgumentTypes ();
168 GetDescription (lldb::SBStream &description,
169 lldb::DescriptionLevel description_level);
172 operator = (const lldb::SBType &rhs);
175 operator == (lldb::SBType &rhs);
178 operator != (lldb::SBType &rhs);
182 lldb_private::TypeImpl &
185 const lldb_private::TypeImpl &
192 SetSP (const lldb::TypeImplSP &type_impl_sp);
194 lldb::TypeImplSP m_opaque_sp;
196 friend class SBFunction;
197 friend class SBModule;
198 friend class SBTarget;
199 friend class SBTypeNameSpecifier;
200 friend class SBTypeMember;
201 friend class SBTypeList;
202 friend class SBValue;
204 SBType (const lldb_private::ClangASTType &);
205 SBType (const lldb::TypeSP &);
206 SBType (const lldb::TypeImplSP &);
215 SBTypeList(const lldb::SBTypeList& rhs);
220 operator = (const lldb::SBTypeList& rhs);
226 Append (lldb::SBType type);
229 GetTypeAtIndex (uint32_t index);
236 std::unique_ptr<lldb_private::TypeListImpl> m_opaque_ap;
237 friend class SBModule;
238 friend class SBCompileUnit;
244 #endif // LLDB_SBType_h_