1254721Semaste//===-- SBSymbolContextList.h -----------------------------------*- C++ -*-===//
2254721Semaste//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6254721Semaste//
7254721Semaste//===----------------------------------------------------------------------===//
8254721Semaste
9254721Semaste#ifndef LLDB_SBSymbolContextList_h_
10254721Semaste#define LLDB_SBSymbolContextList_h_
11254721Semaste
12254721Semaste#include "lldb/API/SBDefines.h"
13254721Semaste#include "lldb/API/SBSymbolContext.h"
14254721Semaste
15254721Semastenamespace lldb {
16254721Semaste
17314564Sdimclass LLDB_API SBSymbolContextList {
18254721Semastepublic:
19314564Sdim  SBSymbolContextList();
20254721Semaste
21314564Sdim  SBSymbolContextList(const lldb::SBSymbolContextList &rhs);
22254721Semaste
23314564Sdim  ~SBSymbolContextList();
24254721Semaste
25314564Sdim  const lldb::SBSymbolContextList &
26314564Sdim  operator=(const lldb::SBSymbolContextList &rhs);
27254721Semaste
28353358Sdim  explicit operator bool() const;
29353358Sdim
30314564Sdim  bool IsValid() const;
31254721Semaste
32314564Sdim  uint32_t GetSize() const;
33254721Semaste
34314564Sdim  lldb::SBSymbolContext GetContextAtIndex(uint32_t idx);
35254721Semaste
36314564Sdim  bool GetDescription(lldb::SBStream &description);
37254721Semaste
38314564Sdim  void Append(lldb::SBSymbolContext &sc);
39314564Sdim
40314564Sdim  void Append(lldb::SBSymbolContextList &sc_list);
41314564Sdim
42314564Sdim  void Clear();
43314564Sdim
44254721Semasteprotected:
45314564Sdim  friend class SBModule;
46314564Sdim  friend class SBTarget;
47254721Semaste
48314564Sdim  lldb_private::SymbolContextList *operator->() const;
49254721Semaste
50314564Sdim  lldb_private::SymbolContextList &operator*() const;
51254721Semaste
52254721Semasteprivate:
53353358Sdim  std::unique_ptr<lldb_private::SymbolContextList> m_opaque_up;
54254721Semaste};
55254721Semaste
56254721Semaste} // namespace lldb
57254721Semaste
58254721Semaste#endif // LLDB_SBSymbolContextList_h_
59