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);
153 llvm::StringRef result =
m_data_sp->GetStringValue();
157 if (!dst || !dst_len) {
159 return (::snprintf(s, 1,
"%s", result.data()));
161 return (::snprintf(dst, dst_len,
"%s", result.data()));
static llvm::raw_ostream & error(Stream &strm)
This class handles one or more StructuredData::Dictionary entries that are raised for structured data...
A stream class that can stream formatted output to a file.
llvm::raw_ostream & AsRawOstream()
Returns a raw_ostream that forwards the data to this Stream object.
StructuredDataImpl(StructuredData::ObjectSP obj)
double GetFloatValue(double fail_value=0.0) const
Status GetAsJSON(Stream &stream) const
StructuredData::ObjectSP GetItemAtIndex(size_t idx) const
int64_t GetIntegerValue(int64_t fail_value=0) const
uint64_t GetIntegerValue(uint64_t fail_value=0) const
lldb::StructuredDataType GetType() const
~StructuredDataImpl()=default
StructuredDataImpl(const lldb::EventSP &event_sp)
StructuredData::ObjectSP m_data_sp
StructuredDataImpl & operator=(const StructuredDataImpl &rhs)=default
StructuredData::ObjectSP GetValueForKey(const char *key) const
size_t GetStringValue(char *dst, size_t dst_len) const
StructuredData::ObjectSP GetObjectSP() const
void SetObjectSP(const StructuredData::ObjectSP &obj)
StructuredData::ObjectSP GetObjectSP()
StructuredDataImpl()=default
bool GetBooleanValue(bool fail_value=false) const
lldb::StructuredDataPluginWP m_plugin_wp
Status GetDescription(Stream &stream) const
StructuredDataImpl(const StructuredDataImpl &rhs)=default
std::shared_ptr< Object > ObjectSP
A class that represents a running process on the host machine.
@ eStructuredDataTypeDictionary
@ eStructuredDataTypeInvalid
@ eStructuredDataTypeArray