SBLineEntry.h revision 5f81547fd786584b10999c087528b323b5945896
1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===-- SBLineEntry.h -------------------------------------------*- C++ -*-===//
2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//
3f5256e16dfc425c1d466f6308d4026d529ce9e0bHoward Hinnant//                     The LLVM Compiler Infrastructure
4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//
5bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// This file is distributed under the University of Illinois Open Source
6bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// License. See LICENSE.TXT for details.
7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//
8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant//===----------------------------------------------------------------------===//
9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifndef LLDB_SBLineEntry_h_
11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#define LLDB_SBLineEntry_h_
12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include "lldb/API/SBDefines.h"
14bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include "lldb/API/SBAddress.h"
15bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#include "lldb/API/SBFileSpec.h"
16bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
17bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantnamespace lldb {
18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantclass SBLineEntry
20bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant{
21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantpublic:
22bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
23bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    SBLineEntry ();
24bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
25bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    SBLineEntry (const lldb::SBLineEntry &rhs);
26bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
27bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    ~SBLineEntry ();
28bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
29bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifndef SWIG
30bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    const lldb::SBLineEntry &
31bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    operator = (const lldb::SBLineEntry &rhs);
32bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif
33bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
34bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    lldb::SBAddress
35bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    GetStartAddress () const;
36bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
37bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    lldb::SBAddress
38bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    GetEndAddress () const;
39bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
40bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    bool
41bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    IsValid () const;
42bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
43bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    lldb::SBFileSpec
44bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    GetFileSpec () const;
45bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
46bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    uint32_t
47bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    GetLine () const;
48bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
49bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    uint32_t
50bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    GetColumn () const;
51bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
52bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifndef SWIG
53bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    bool
54bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    operator == (const lldb::SBLineEntry &rhs) const;
55bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
56bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    bool
57bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    operator != (const lldb::SBLineEntry &rhs) const;
58bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
59bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif
60bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
61bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantprivate:
62bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    friend class SBCompileUnit;
63bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    friend class SBFrame;
64bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    friend class SBSymbolContext;
65bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
66bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#ifndef SWIG
67bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
68bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    const lldb_private::LineEntry *
69bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    operator->() const;
70bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
71bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    const lldb_private::LineEntry &
72bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    operator*() const;
73bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
74bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif
75bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
76bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
77bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    SBLineEntry (const lldb_private::LineEntry *lldb_object_ptr);
78bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
79bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    void
80bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    SetLineEntry (const lldb_private::LineEntry &lldb_object_ref);
81bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
82bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant    std::auto_ptr<lldb_private::LineEntry> m_lldb_object_ap;
83bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant};
84bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
85bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
86bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant} // namespace lldb
87bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant
88bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant#endif // LLDB_SBLineEntry_h_
89bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant