SBLineEntry.h revision 24943d2ee8bfaa7cf5893e4709143924157a5c1e
124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- SBLineEntry.h -------------------------------------------*- C++ -*-===//
224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//                     The LLVM Compiler Infrastructure
424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source
624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details.
724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===//
924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef LLDB_SBLineEntry_h_
1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_SBLineEntry_h_
1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include <LLDB/SBDefines.h>
1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include <LLDB/SBAddress.h>
1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include <LLDB/SBFileSpec.h>
1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnernamespace lldb {
1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SBLineEntry
2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{
2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic:
2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    SBLineEntry ();
2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    SBLineEntry (const lldb::SBLineEntry &rhs);
2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    ~SBLineEntry ();
2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef SWIG
3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    const lldb::SBLineEntry &
3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    operator = (const lldb::SBLineEntry &rhs);
3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif
3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    lldb::SBAddress
3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetStartAddress () const;
3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    lldb::SBAddress
3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetEndAddress () const;
3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    bool
4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    IsValid () const;
4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    lldb::SBFileSpec
4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetFileSpec () const;
4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    uint32_t
4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetLine () const;
4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    uint32_t
5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetColumn () const;
5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
5224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef SWIG
5324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    bool
5424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    operator == (const lldb::SBLineEntry &rhs) const;
5524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
5624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    bool
5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    operator != (const lldb::SBLineEntry &rhs) const;
5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif
6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprivate:
6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBCompileUnit;
6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBFrame;
6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBSymbolContext;
6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef SWIG
6724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    const lldb_private::LineEntry *
6924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    operator->() const;
7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    const lldb_private::LineEntry &
7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    operator*() const;
7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
7424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif
7524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
7624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
7724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    SBLineEntry (const lldb_private::LineEntry *lldb_object_ptr);
7824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
7924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    void
8024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    SetLineEntry (const lldb_private::LineEntry &lldb_object_ref);
8124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
8224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    std::auto_ptr<lldb_private::LineEntry> m_lldb_object_ap;
8324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner};
8424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
8524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
8624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb
8724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
8824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // LLDB_SBLineEntry_h_
89