1 //===-- TraceOptions.h ------------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef liblldb_TraceOptions_h_
11 #define liblldb_TraceOptions_h_
12 
13 #include "lldb/lldb-defines.h"
14 #include "lldb/lldb-enumerations.h"
15 
16 #include "lldb/Utility/StructuredData.h"
17 
18 namespace lldb_private {
19 class TraceOptions {
20 public:
TraceOptions()21   TraceOptions() : m_trace_params(new StructuredData::Dictionary()) {}
22 
getTraceParams()23   const StructuredData::DictionarySP &getTraceParams() const {
24     return m_trace_params;
25   }
26 
getType()27   lldb::TraceType getType() const { return m_type; }
28 
getTraceBufferSize()29   uint64_t getTraceBufferSize() const { return m_trace_buffer_size; }
30 
getMetaDataBufferSize()31   uint64_t getMetaDataBufferSize() const { return m_meta_data_buffer_size; }
32 
setTraceParams(const StructuredData::DictionarySP & dict_obj)33   void setTraceParams(const StructuredData::DictionarySP &dict_obj) {
34     m_trace_params = dict_obj;
35   }
36 
setType(lldb::TraceType type)37   void setType(lldb::TraceType type) { m_type = type; }
38 
setTraceBufferSize(uint64_t size)39   void setTraceBufferSize(uint64_t size) { m_trace_buffer_size = size; }
40 
setMetaDataBufferSize(uint64_t size)41   void setMetaDataBufferSize(uint64_t size) { m_meta_data_buffer_size = size; }
42 
setThreadID(lldb::tid_t thread_id)43   void setThreadID(lldb::tid_t thread_id) { m_thread_id = thread_id; }
44 
getThreadID()45   lldb::tid_t getThreadID() const { return m_thread_id; }
46 
47 private:
48   lldb::TraceType m_type;
49   uint64_t m_trace_buffer_size;
50   uint64_t m_meta_data_buffer_size;
51   lldb::tid_t m_thread_id;
52 
53   /// m_trace_params is meant to hold any custom parameters
54   /// apart from meta buffer size and trace size.
55   /// The interpretation of such parameters is left to
56   /// the lldb-server.
57   StructuredData::DictionarySP m_trace_params;
58 };
59 }
60 
61 #endif // liblldb_TraceOptions_h_
62