• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===-- SBSymbolContextList.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_SBSymbolContextList_h_
11 #define LLDB_SBSymbolContextList_h_
12 
13 #include "lldb/API/SBDefines.h"
14 #include "lldb/API/SBSymbolContext.h"
15 
16 namespace lldb {
17 
18 class SBSymbolContextList
19 {
20 public:
21     SBSymbolContextList ();
22 
23     SBSymbolContextList (const lldb::SBSymbolContextList& rhs);
24 
25     ~SBSymbolContextList ();
26 
27     const lldb::SBSymbolContextList &
28     operator = (const lldb::SBSymbolContextList &rhs);
29 
30     bool
31     IsValid () const;
32 
33     uint32_t
34     GetSize() const;
35 
36     lldb::SBSymbolContext
37     GetContextAtIndex (uint32_t idx);
38 
39     bool
40     GetDescription (lldb::SBStream &description);
41 
42     void
43     Append (lldb::SBSymbolContext &sc);
44 
45     void
46     Append (lldb::SBSymbolContextList &sc_list);
47 
48     void
49     Clear();
50 
51 protected:
52 
53     friend class SBModule;
54     friend class SBTarget;
55 
56     lldb_private::SymbolContextList*
57     operator->() const;
58 
59     lldb_private::SymbolContextList&
60     operator*() const;
61 
62 private:
63     std::unique_ptr<lldb_private::SymbolContextList> m_opaque_ap;
64 };
65 
66 
67 } // namespace lldb
68 
69 #endif // LLDB_SBSymbolContextList_h_
70