diff options
Diffstat (limited to 'contrib/llvm-project/lldb/source/API/SBSaveCoreOptions.cpp')
-rw-r--r-- | contrib/llvm-project/lldb/source/API/SBSaveCoreOptions.cpp | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/contrib/llvm-project/lldb/source/API/SBSaveCoreOptions.cpp b/contrib/llvm-project/lldb/source/API/SBSaveCoreOptions.cpp new file mode 100644 index 000000000000..19ca83f932bc --- /dev/null +++ b/contrib/llvm-project/lldb/source/API/SBSaveCoreOptions.cpp @@ -0,0 +1,87 @@ +//===-- SBSaveCoreOptions.cpp -----------------------------------*- C++ -*-===// +// +// 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/SBSaveCoreOptions.h" +#include "lldb/API/SBError.h" +#include "lldb/API/SBFileSpec.h" +#include "lldb/Host/FileSystem.h" +#include "lldb/Symbol/SaveCoreOptions.h" +#include "lldb/Utility/Instrumentation.h" + +#include "Utils.h" + +using namespace lldb; + +SBSaveCoreOptions::SBSaveCoreOptions() { + LLDB_INSTRUMENT_VA(this) + + m_opaque_up = std::make_unique<lldb_private::SaveCoreOptions>(); +} + +SBSaveCoreOptions::SBSaveCoreOptions(const SBSaveCoreOptions &rhs) { + LLDB_INSTRUMENT_VA(this, rhs); + + m_opaque_up = clone(rhs.m_opaque_up); +} + +SBSaveCoreOptions::~SBSaveCoreOptions() = default; + +const SBSaveCoreOptions & +SBSaveCoreOptions::operator=(const SBSaveCoreOptions &rhs) { + LLDB_INSTRUMENT_VA(this, rhs); + + if (this != &rhs) + m_opaque_up = clone(rhs.m_opaque_up); + return *this; +} + +SBError SBSaveCoreOptions::SetPluginName(const char *name) { + LLDB_INSTRUMENT_VA(this, name); + lldb_private::Status error = m_opaque_up->SetPluginName(name); + return SBError(error); +} + +void SBSaveCoreOptions::SetStyle(lldb::SaveCoreStyle style) { + LLDB_INSTRUMENT_VA(this, style); + m_opaque_up->SetStyle(style); +} + +void SBSaveCoreOptions::SetOutputFile(lldb::SBFileSpec file_spec) { + LLDB_INSTRUMENT_VA(this, file_spec); + m_opaque_up->SetOutputFile(file_spec.ref()); +} + +const char *SBSaveCoreOptions::GetPluginName() const { + LLDB_INSTRUMENT_VA(this); + const auto name = m_opaque_up->GetPluginName(); + if (!name) + return nullptr; + return lldb_private::ConstString(name.value()).GetCString(); +} + +SBFileSpec SBSaveCoreOptions::GetOutputFile() const { + LLDB_INSTRUMENT_VA(this); + const auto file_spec = m_opaque_up->GetOutputFile(); + if (file_spec) + return SBFileSpec(file_spec.value()); + return SBFileSpec(); +} + +lldb::SaveCoreStyle SBSaveCoreOptions::GetStyle() const { + LLDB_INSTRUMENT_VA(this); + return m_opaque_up->GetStyle(); +} + +void SBSaveCoreOptions::Clear() { + LLDB_INSTRUMENT_VA(this); + m_opaque_up->Clear(); +} + +lldb_private::SaveCoreOptions &SBSaveCoreOptions::ref() const { + return *m_opaque_up.get(); +} |