Go to the documentation of this file.
9 #ifndef LLDB_CORE_STRUCTUREDDATAIMPL_H
10 #define LLDB_CORE_STRUCTUREDDATAIMPL_H
19 #include "llvm/ADT/StringRef.h"
22 #pragma mark StructuredDataImpl
56 error.SetErrorString(
"No structured data.");
69 error.SetErrorString(
"Cannot pretty print structured data: "
75 lldb::StructuredDataPluginSP plugin_sp =
m_plugin_wp.lock();
80 error.SetErrorString(
"No data to describe.");
87 return plugin_sp->GetDescription(
m_data_sp, stream);
104 auto dict =
m_data_sp->GetAsDictionary();
105 return (dict->GetSize());
108 return (array->GetSize());
115 auto dict =
m_data_sp->GetAsDictionary();
117 return dict->GetValueForKey(llvm::StringRef(key));
126 return array->GetItemAtIndex(idx);
147 llvm::StringRef result =
m_data_sp->GetStringValue();
151 if (!dst || !dst_len) {
153 return (::snprintf(s, 1,
"%s", result.data()));
155 return (::snprintf(dst, dst_len,
"%s", result.data()));
StructuredData::ObjectSP m_data_sp
StructuredData::ObjectSP GetValueForKey(const char *key) const
uint64_t GetIntegerValue(uint64_t fail_value=0) const
@ eStructuredDataTypeDictionary
Status GetDescription(Stream &stream) const
StructuredData::ObjectSP GetObjectSP()
StructuredData::ObjectSP GetObjectSP() const
Status GetAsJSON(Stream &stream) const
StructuredDataImpl & operator=(const StructuredDataImpl &rhs)=default
@ eStructuredDataTypeInvalid
~StructuredDataImpl()=default
lldb::StructuredDataType GetType() const
static llvm::raw_ostream & error(Stream &strm)
StructuredData::ObjectSP GetItemAtIndex(size_t idx) const
std::shared_ptr< Object > ObjectSP
size_t GetStringValue(char *dst, size_t dst_len) const
void SetObjectSP(const StructuredData::ObjectSP &obj)
StructuredDataImpl(const lldb::EventSP &event_sp)
llvm::raw_ostream & AsRawOstream()
Returns a raw_ostream that forwards the data to this Stream object.
A class that represents a running process on the host machine.
StructuredDataImpl(StructuredData::ObjectSP obj)
@ eStructuredDataTypeArray
StructuredDataImpl()=default
bool GetBooleanValue(bool fail_value=false) const
double GetFloatValue(double fail_value=0.0) const
This class handles one or more StructuredData::Dictionary entries that are raised for structured data...
lldb::StructuredDataPluginWP m_plugin_wp