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 #ifndef SWIG
28     const lldb::SBSymbolContextList &
29     operator = (const lldb::SBSymbolContextList &rhs);
30 #endif
31 
32     bool
33     IsValid () const;
34 
35     uint32_t
36     GetSize() const;
37 
38     SBSymbolContext
39     GetContextAtIndex (uint32_t idx);
40 
41     void
42     Clear();
43 
44 protected:
45 
46     friend class SBModule;
47     friend class SBTarget;
48 
49 #ifndef SWIG
50 
51     lldb_private::SymbolContextList*
52     operator->() const;
53 
54     lldb_private::SymbolContextList&
55     operator*() const;
56 
57 #endif
58 
59 private:
60     std::auto_ptr<lldb_private::SymbolContextList> m_opaque_ap;
61 };
62 
63 
64 } // namespace lldb
65 
66 #endif // LLDB_SBSymbolContextList_h_
67