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