1//===-- SWIG Interface for SBTraceCursor.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
9namespace lldb {
10
11%feature("docstring",
12"Represents a trace cursor."
13) SBTrace;
14class LLDB_API SBTraceCursor {
15public:
16  SBTraceCursor();
17
18  SBTraceCursor(lldb::TraceCursorSP trace_cursor_sp);
19
20  void SetForwards(bool forwards);
21
22  bool IsForwards() const;
23
24  void Next();
25
26  bool HasValue();
27
28  bool GoToId(lldb::user_id_t id);
29
30  bool HasId(lldb::user_id_t id) const;
31
32  lldb::user_id_t GetId() const;
33
34  bool Seek(int64_t offset, lldb::TraceCursorSeekType origin);
35
36  lldb::TraceItemKind GetItemKind() const;
37
38  bool IsError() const;
39
40  const char *GetError() const;
41
42  bool IsEvent() const;
43
44  lldb::TraceEvent GetEventType() const;
45
46  const char *GetEventTypeAsString() const;
47
48  bool IsInstruction() const;
49
50  lldb::addr_t GetLoadAddress() const;
51
52  lldb::cpu_id_t GetCPU() const;
53
54  bool IsValid() const;
55
56  explicit operator bool() const;
57};
58} // namespace lldb
59