//===-- SBFormat.cpp ------------------------------------------------------===// // // 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 // //===----------------------------------------------------------------------===// #include "lldb/API/SBFormat.h" #include "Utils.h" #include "lldb/Core/FormatEntity.h" #include "lldb/lldb-types.h" #include #include using namespace lldb; using namespace lldb_private; SBFormat::SBFormat() : m_opaque_sp() {} SBFormat::SBFormat(const SBFormat &rhs) { m_opaque_sp = clone(rhs.m_opaque_sp); } SBFormat::~SBFormat() = default; SBFormat &SBFormat::operator=(const SBFormat &rhs) { if (this != &rhs) m_opaque_sp = clone(rhs.m_opaque_sp); return *this; } SBFormat::operator bool() const { return (bool)m_opaque_sp; } SBFormat::SBFormat(const char *format, lldb::SBError &error) { FormatEntrySP format_entry_sp = std::make_shared(); Status status = FormatEntity::Parse(format, *format_entry_sp); error.SetError(status); if (error.Success()) m_opaque_sp = format_entry_sp; } lldb::FormatEntrySP SBFormat::GetFormatEntrySP() const { return m_opaque_sp; }