1 //===-- SBSymbolContextList.cpp ---------------------------------*- 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 #include "lldb/API/SBSymbolContextList.h"
11 #include "lldb/Symbol/SymbolContext.h"
12 
13 using namespace lldb;
14 using namespace lldb_private;
15 
16 SBSymbolContextList::SBSymbolContextList () :
17     m_opaque_ap (new SymbolContextList())
18 {
19 }
20 
21 SBSymbolContextList::SBSymbolContextList (const SBSymbolContextList& rhs) :
22     m_opaque_ap (new SymbolContextList(*rhs.m_opaque_ap))
23 {
24 }
25 
26 SBSymbolContextList::~SBSymbolContextList ()
27 {
28 }
29 
30 const SBSymbolContextList &
31 SBSymbolContextList::operator = (const SBSymbolContextList &rhs)
32 {
33     if (this != &rhs)
34     {
35         *m_opaque_ap = *rhs.m_opaque_ap;
36     }
37     return *this;
38 }
39 
40 uint32_t
41 SBSymbolContextList::GetSize() const
42 {
43     if (m_opaque_ap.get())
44         return m_opaque_ap->GetSize();
45     return 0;
46 }
47 
48 SBSymbolContext
49 SBSymbolContextList::GetContextAtIndex (uint32_t idx)
50 {
51     SBSymbolContext sb_sc;
52     if (m_opaque_ap.get())
53     {
54         SymbolContext sc;
55         if (m_opaque_ap->GetContextAtIndex (idx, sc))
56         {
57             sb_sc.SetSymbolContext(&sc);
58         }
59     }
60     return sb_sc;
61 }
62 
63 void
64 SBSymbolContextList::Clear()
65 {
66     if (m_opaque_ap.get())
67         m_opaque_ap->Clear();
68 }
69 
70 
71 bool
72 SBSymbolContextList::IsValid () const
73 {
74     return m_opaque_ap.get() != NULL;
75 }
76 
77 
78 
79 lldb_private::SymbolContextList*
80 SBSymbolContextList::operator->() const
81 {
82     return m_opaque_ap.get();
83 }
84 
85 
86 lldb_private::SymbolContextList&
87 SBSymbolContextList::operator*() const
88 {
89     assert (m_opaque_ap.get());
90     return *m_opaque_ap.get();
91 }
92 
93 
94 
95 
96