2016-08-19 12:21:48 +08:00
|
|
|
//===-- SWIG Interface for SBStructuredData ---------------------*- C++ -*-===//
|
|
|
|
//
|
2019-01-19 16:50:56 +08:00
|
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
2016-08-19 12:21:48 +08:00
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
|
|
|
namespace lldb {
|
|
|
|
|
2021-01-18 00:40:54 +08:00
|
|
|
%feature("docstring",
|
|
|
|
"A class representing a StructuredData event.
|
2016-08-19 12:21:48 +08:00
|
|
|
|
2021-01-18 00:40:54 +08:00
|
|
|
This class wraps the event type generated by StructuredData features."
|
|
|
|
) SBStructuredData;
|
2016-08-19 12:21:48 +08:00
|
|
|
class SBStructuredData
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
SBStructuredData();
|
2017-05-29 16:25:46 +08:00
|
|
|
|
2016-08-19 12:21:48 +08:00
|
|
|
SBStructuredData(const lldb::SBStructuredData &rhs);
|
|
|
|
|
|
|
|
SBStructuredData(const lldb::EventSP &event_sp);
|
|
|
|
|
|
|
|
~SBStructuredData();
|
2017-05-29 16:25:46 +08:00
|
|
|
|
2016-08-19 12:21:48 +08:00
|
|
|
bool
|
|
|
|
IsValid() const;
|
2017-05-29 16:25:46 +08:00
|
|
|
|
Add "operator bool" to SB APIs
Summary:
Our python version of the SB API has (the python equivalent of)
operator bool, but the C++ version doesn't.
This is because our python operators are added by modify-python-lldb.py,
which performs postprocessing on the swig-generated interface files.
In this patch, I add the "operator bool" to all SB classes which have an
IsValid method (which is the same logic used by modify-python-lldb.py).
This way, we make the two interfaces more constent, and it allows us to
rely on swig's automatic syntesis of python __nonzero__ methods instead
of doing manual fixups.
Reviewers: zturner, jingham, clayborg, jfb, serge-sans-paille
Subscribers: jdoerfert, lldb-commits
Differential Revision: https://reviews.llvm.org/D58792
llvm-svn: 355824
2019-03-11 21:58:46 +08:00
|
|
|
explicit operator bool() const;
|
|
|
|
|
2016-08-19 12:21:48 +08:00
|
|
|
void
|
|
|
|
Clear();
|
|
|
|
|
2017-05-29 16:25:46 +08:00
|
|
|
lldb::StructuredDataType GetType() const;
|
|
|
|
|
|
|
|
size_t GetSize() const;
|
|
|
|
|
2018-09-14 05:35:32 +08:00
|
|
|
bool GetKeys(lldb::SBStringList &keys) const;
|
|
|
|
|
2017-05-29 16:25:46 +08:00
|
|
|
lldb::SBStructuredData GetValueForKey(const char *key) const;
|
|
|
|
|
|
|
|
lldb::SBStructuredData GetItemAtIndex(size_t idx) const;
|
|
|
|
|
|
|
|
uint64_t GetIntegerValue(uint64_t fail_value = 0) const;
|
|
|
|
|
|
|
|
double GetFloatValue(double fail_value = 0.0) const;
|
|
|
|
|
|
|
|
bool GetBooleanValue(bool fail_value = false) const;
|
|
|
|
|
|
|
|
size_t GetStringValue(char *dst, size_t dst_len) const;
|
|
|
|
|
2016-08-19 12:21:48 +08:00
|
|
|
lldb::SBError
|
|
|
|
GetAsJSON(lldb::SBStream &stream) const;
|
|
|
|
|
|
|
|
lldb::SBError
|
|
|
|
GetDescription(lldb::SBStream &stream) const;
|
2017-04-26 16:48:50 +08:00
|
|
|
|
|
|
|
lldb::SBError
|
|
|
|
SetFromJSON(lldb::SBStream &stream);
|
2016-08-19 12:21:48 +08:00
|
|
|
};
|
|
|
|
}
|