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 
9 namespace lldb {
10 
11 %feature("docstring",
12 "Represents a trace cursor."
13 ) SBTrace;
14 class LLDB_API SBTraceCursor {
15 public:
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