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 LLDB_API SBSymbolContextList { 19 public: 20 SBSymbolContextList(); 21 22 SBSymbolContextList(const lldb::SBSymbolContextList &rhs); 23 24 ~SBSymbolContextList(); 25 26 const lldb::SBSymbolContextList & 27 operator=(const lldb::SBSymbolContextList &rhs); 28 29 bool IsValid() const; 30 31 uint32_t GetSize() const; 32 33 lldb::SBSymbolContext GetContextAtIndex(uint32_t idx); 34 35 bool GetDescription(lldb::SBStream &description); 36 37 void Append(lldb::SBSymbolContext &sc); 38 39 void Append(lldb::SBSymbolContextList &sc_list); 40 41 void Clear(); 42 43 protected: 44 friend class SBModule; 45 friend class SBTarget; 46 47 lldb_private::SymbolContextList *operator->() const; 48 49 lldb_private::SymbolContextList &operator*() const; 50 51 private: 52 std::unique_ptr<lldb_private::SymbolContextList> m_opaque_ap; 53 }; 54 55 } // namespace lldb 56 57 #endif // LLDB_SBSymbolContextList_h_ 58