]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/lldb/include/lldb/API/SBTraceOptions.h
MFC r355940:
[FreeBSD/FreeBSD.git] / contrib / llvm-project / lldb / include / lldb / API / SBTraceOptions.h
1 //===-- SBTraceOptions ------------------------------------------*- 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 SBTRACEOPTIONS_H_
10 #define SBTRACEOPTIONS_H_
11
12 #include "lldb/API/SBDefines.h"
13
14 namespace lldb {
15
16 class LLDB_API SBTraceOptions {
17 public:
18   SBTraceOptions();
19
20   lldb::TraceType getType() const;
21
22   uint64_t getTraceBufferSize() const;
23
24   /// The trace parameters consist of any custom parameters
25   /// apart from the generic parameters such as
26   /// TraceType, trace_buffer_size and meta_data_buffer_size.
27   /// The returned parameters would be formatted as a JSON Dictionary.
28   lldb::SBStructuredData getTraceParams(lldb::SBError &error);
29
30   uint64_t getMetaDataBufferSize() const;
31
32   /// SBStructuredData is meant to hold any custom parameters
33   /// apart from meta buffer size and trace size. They should
34   /// be formatted as a JSON Dictionary.
35   void setTraceParams(lldb::SBStructuredData &params);
36
37   void setType(lldb::TraceType type);
38
39   void setTraceBufferSize(uint64_t size);
40
41   void setMetaDataBufferSize(uint64_t size);
42
43   void setThreadID(lldb::tid_t thread_id);
44
45   lldb::tid_t getThreadID();
46
47   explicit operator bool() const;
48
49   bool IsValid();
50
51 protected:
52   friend class SBProcess;
53   friend class SBTrace;
54
55   lldb::TraceOptionsSP m_traceoptions_sp;
56 };
57 }
58
59 #endif /* SBTRACEOPTIONS_H_ */