#ifndef LLDB_SBAddress_h_
#define LLDB_SBAddress_h_
#include "lldb/API/SBDefines.h"
#include "lldb/API/SBModule.h"
namespace lldb {
class SBAddress
{
public:
SBAddress ();
SBAddress (const lldb::SBAddress &rhs);
SBAddress (lldb::SBSection section, lldb::addr_t offset);
SBAddress (lldb::addr_t load_addr, lldb::SBTarget &target);
~SBAddress ();
const lldb::SBAddress &
operator = (const lldb::SBAddress &rhs);
bool
IsValid () const;
void
Clear ();
addr_t
GetFileAddress () const;
addr_t
GetLoadAddress (const lldb::SBTarget &target) const;
void
SetAddress (lldb::SBSection section, lldb::addr_t offset);
void
SetLoadAddress (lldb::addr_t load_addr,
lldb::SBTarget &target);
bool
OffsetAddress (addr_t offset);
bool
GetDescription (lldb::SBStream &description);
lldb::SBSymbolContext
GetSymbolContext (uint32_t resolve_scope);
lldb::SBSection
GetSection ();
lldb::addr_t
GetOffset ();
lldb::SBModule
GetModule ();
lldb::SBCompileUnit
GetCompileUnit ();
lldb::SBFunction
GetFunction ();
lldb::SBBlock
GetBlock ();
lldb::SBSymbol
GetSymbol ();
lldb::SBLineEntry
GetLineEntry ();
lldb::AddressClass
GetAddressClass ();
protected:
friend class SBBlock;
friend class SBBreakpointLocation;
friend class SBFrame;
friend class SBFunction;
friend class SBLineEntry;
friend class SBInstruction;
friend class SBModule;
friend class SBSection;
friend class SBSymbol;
friend class SBSymbolContext;
friend class SBTarget;
friend class SBThread;
friend class SBValue;
lldb_private::Address *
operator->();
const lldb_private::Address *
operator->() const;
lldb_private::Address *
get ();
lldb_private::Address &
ref();
const lldb_private::Address &
ref() const;
SBAddress (const lldb_private::Address *lldb_object_ptr);
void
SetAddress (const lldb_private::Address *lldb_object_ptr);
private:
std::auto_ptr<lldb_private::Address> m_opaque_ap;
};
}
#endif // LLDB_SBAddress_h_