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 ();
112 GetDereferencedType();
115 GetUnqualifiedType();
119 // Get the "lldb::BasicType" enumeration for a type. If a type is not a basic
120 // type eBasicTypeInvalid will be returned
124 // The call below confusing and should really be renamed to "CreateBasicType"
126 GetBasicType(lldb::BasicType type);
129 GetNumberOfFields ();
132 GetNumberOfDirectBaseClasses ();
135 GetNumberOfVirtualBaseClasses ();
138 GetFieldAtIndex (uint32_t idx);
141 GetDirectBaseClassAtIndex (uint32_t idx);
144 GetVirtualBaseClassAtIndex (uint32_t idx);
147 GetNumberOfTemplateArguments ();
150 GetTemplateArgumentType (uint32_t idx);
152 lldb::TemplateArgumentKind
153 GetTemplateArgumentKind (uint32_t idx);
156 GetFunctionReturnType ();
159 GetFunctionArgumentTypes ();
171 GetDescription (lldb::SBStream &description,
172 lldb::DescriptionLevel description_level);
175 operator = (const lldb::SBType &rhs);
178 operator == (lldb::SBType &rhs);
181 operator != (lldb::SBType &rhs);
185 lldb_private::TypeImpl &
188 const lldb_private::TypeImpl &
195 SetSP (const lldb::TypeImplSP &type_impl_sp);
197 lldb::TypeImplSP m_opaque_sp;
199 friend class SBFunction;
200 friend class SBModule;
201 friend class SBTarget;
202 friend class SBTypeNameSpecifier;
203 friend class SBTypeMember;
204 friend class SBTypeList;
205 friend class SBValue;
207 SBType (const lldb_private::ClangASTType &);
208 SBType (const lldb::TypeSP &);
209 SBType (const lldb::TypeImplSP &);
218 SBTypeList(const lldb::SBTypeList& rhs);
223 operator = (const lldb::SBTypeList& rhs);
229 Append (lldb::SBType type);
232 GetTypeAtIndex (uint32_t index);
239 std::unique_ptr<lldb_private::TypeListImpl> m_opaque_ap;
240 friend class SBModule;
241 friend class SBCompileUnit;
247 #endif // LLDB_SBType_h_