SBAddress.h revision 24943d2ee8bfaa7cf5893e4709143924157a5c1e
1//===-- SBAddress.h ---------------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLDB_SBAddress_h_
11#define LLDB_SBAddress_h_
12
13#include <LLDB/SBDefines.h>
14
15namespace lldb {
16
17class SBAddress
18{
19public:
20
21    SBAddress ();
22
23    SBAddress (const lldb::SBAddress &rhs);
24
25    ~SBAddress ();
26
27#ifndef SWIG
28    const SBAddress &
29    operator = (const SBAddress &rhs);
30#endif
31
32    bool
33    IsValid () const;
34
35    addr_t
36    GetFileAddress () const;
37
38    addr_t
39    GetLoadAddress (const lldb::SBProcess &process) const;
40
41    bool
42    OffsetAddress (addr_t offset);
43
44protected:
45
46    friend class SBFrame;
47    friend class SBLineEntry;
48    friend class SBSymbolContext;
49    friend class SBThread;
50
51#ifndef SWIG
52
53    const lldb_private::Address *
54    operator->() const;
55
56    const lldb_private::Address &
57    operator*() const;
58
59#endif
60
61
62    SBAddress (const lldb_private::Address *lldb_object_ptr);
63
64    void
65    SetAddress (const lldb_private::Address *lldb_object_ptr);
66
67private:
68
69    std::auto_ptr<lldb_private::Address> m_lldb_object_ap;
70};
71
72
73} // namespace lldb
74
75#endif // LLDB_SBAddress_h_
76