1 //===-- SBSymbolContextList.h -----------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_API_SBSYMBOLCONTEXTLIST_H
10 #define LLDB_API_SBSYMBOLCONTEXTLIST_H
11 
12 #include "lldb/API/SBDefines.h"
13 #include "lldb/API/SBSymbolContext.h"
14 
15 namespace lldb {
16 
17 class LLDB_API SBSymbolContextList {
18 public:
19   SBSymbolContextList();
20 
21   SBSymbolContextList(const lldb::SBSymbolContextList &rhs);
22 
23   ~SBSymbolContextList();
24 
25   const lldb::SBSymbolContextList &
26   operator=(const lldb::SBSymbolContextList &rhs);
27 
28   explicit operator bool() const;
29 
30   bool IsValid() const;
31 
32   uint32_t GetSize() const;
33 
34   lldb::SBSymbolContext GetContextAtIndex(uint32_t idx);
35 
36   bool GetDescription(lldb::SBStream &description);
37 
38   void Append(lldb::SBSymbolContext &sc);
39 
40   void Append(lldb::SBSymbolContextList &sc_list);
41 
42   void Clear();
43 
44 protected:
45   friend class SBModule;
46   friend class SBTarget;
47 
48   lldb_private::SymbolContextList *operator->() const;
49 
50   lldb_private::SymbolContextList &operator*() const;
51 
52 private:
53   std::unique_ptr<lldb_private::SymbolContextList> m_opaque_up;
54 };
55 
56 } // namespace lldb
57 
58 #endif // LLDB_API_SBSYMBOLCONTEXTLIST_H
59