SBSymbolContext.h revision 5f81547fd786584b10999c087528b323b5945896
1//===-- SBSymbolContext.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_SBSymbolContext_h_
11#define LLDB_SBSymbolContext_h_
12
13#include "lldb/API/SBDefines.h"
14#include "lldb/API/SBBlock.h"
15#include "lldb/API/SBCompileUnit.h"
16#include "lldb/API/SBFunction.h"
17#include "lldb/API/SBLineEntry.h"
18#include "lldb/API/SBModule.h"
19#include "lldb/API/SBSymbol.h"
20
21namespace lldb {
22
23class SBSymbolContext
24{
25public:
26    SBSymbolContext ();
27
28    SBSymbolContext (const lldb::SBSymbolContext& rhs);
29
30    ~SBSymbolContext ();
31
32    bool
33    IsValid () const;
34
35#ifndef SWIG
36    const lldb::SBSymbolContext &
37    operator = (const lldb::SBSymbolContext &rhs);
38#endif
39
40    SBModule        GetModule ();
41    SBCompileUnit   GetCompileUnit ();
42    SBFunction      GetFunction ();
43    SBBlock         GetBlock ();
44    SBLineEntry     GetLineEntry ();
45    SBSymbol        GetSymbol ();
46
47protected:
48    friend class SBFrame;
49    friend class SBThread;
50
51#ifndef SWIG
52
53    lldb_private::SymbolContext*
54    operator->() const;
55
56#endif
57
58    lldb_private::SymbolContext *
59    GetLLDBObjectPtr() const;
60
61    SBSymbolContext (const lldb_private::SymbolContext *sc_ptr);
62
63    void
64    SetSymbolContext (const lldb_private::SymbolContext *sc_ptr);
65
66private:
67    std::auto_ptr<lldb_private::SymbolContext> m_lldb_object_ap;
68};
69
70
71} // namespace lldb
72
73#endif // LLDB_SBSymbolContext_h_
74