mirror of
https://github.com/intel/llvm.git
synced 2026-01-17 06:40:01 +08:00
This patch removes the comments following the header includes. They were added after running IWYU over the LLDB codebase. However they add little value, are often outdates and burdensome to maintain. Differential revision: https://reviews.llvm.org/D54385 llvm-svn: 346625
115 lines
3.7 KiB
C++
115 lines
3.7 KiB
C++
//====-- UserSettingsController.cpp ------------------------------*- C++-*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "lldb/Core/UserSettingsController.h"
|
|
|
|
#include "lldb/Interpreter/OptionValueProperties.h"
|
|
#include "lldb/Utility/Status.h"
|
|
#include "lldb/Utility/Stream.h"
|
|
|
|
#include <memory>
|
|
|
|
namespace lldb_private {
|
|
class CommandInterpreter;
|
|
}
|
|
namespace lldb_private {
|
|
class ConstString;
|
|
}
|
|
namespace lldb_private {
|
|
class ExecutionContext;
|
|
}
|
|
namespace lldb_private {
|
|
class Property;
|
|
}
|
|
|
|
using namespace lldb;
|
|
using namespace lldb_private;
|
|
|
|
lldb::OptionValueSP
|
|
Properties::GetPropertyValue(const ExecutionContext *exe_ctx,
|
|
llvm::StringRef path, bool will_modify,
|
|
Status &error) const {
|
|
OptionValuePropertiesSP properties_sp(GetValueProperties());
|
|
if (properties_sp)
|
|
return properties_sp->GetSubValue(exe_ctx, path, will_modify, error);
|
|
return lldb::OptionValueSP();
|
|
}
|
|
|
|
Status Properties::SetPropertyValue(const ExecutionContext *exe_ctx,
|
|
VarSetOperationType op,
|
|
llvm::StringRef path,
|
|
llvm::StringRef value) {
|
|
OptionValuePropertiesSP properties_sp(GetValueProperties());
|
|
if (properties_sp)
|
|
return properties_sp->SetSubValue(exe_ctx, op, path, value);
|
|
Status error;
|
|
error.SetErrorString("no properties");
|
|
return error;
|
|
}
|
|
|
|
void Properties::DumpAllPropertyValues(const ExecutionContext *exe_ctx,
|
|
Stream &strm, uint32_t dump_mask) {
|
|
OptionValuePropertiesSP properties_sp(GetValueProperties());
|
|
if (properties_sp)
|
|
return properties_sp->DumpValue(exe_ctx, strm, dump_mask);
|
|
}
|
|
|
|
void Properties::DumpAllDescriptions(CommandInterpreter &interpreter,
|
|
Stream &strm) const {
|
|
strm.PutCString("Top level variables:\n\n");
|
|
|
|
OptionValuePropertiesSP properties_sp(GetValueProperties());
|
|
if (properties_sp)
|
|
return properties_sp->DumpAllDescriptions(interpreter, strm);
|
|
}
|
|
|
|
Status Properties::DumpPropertyValue(const ExecutionContext *exe_ctx,
|
|
Stream &strm,
|
|
llvm::StringRef property_path,
|
|
uint32_t dump_mask) {
|
|
OptionValuePropertiesSP properties_sp(GetValueProperties());
|
|
if (properties_sp) {
|
|
return properties_sp->DumpPropertyValue(exe_ctx, strm, property_path,
|
|
dump_mask);
|
|
}
|
|
Status error;
|
|
error.SetErrorString("empty property list");
|
|
return error;
|
|
}
|
|
|
|
size_t
|
|
Properties::Apropos(llvm::StringRef keyword,
|
|
std::vector<const Property *> &matching_properties) const {
|
|
OptionValuePropertiesSP properties_sp(GetValueProperties());
|
|
if (properties_sp) {
|
|
properties_sp->Apropos(keyword, matching_properties);
|
|
}
|
|
return matching_properties.size();
|
|
}
|
|
|
|
lldb::OptionValuePropertiesSP
|
|
Properties::GetSubProperty(const ExecutionContext *exe_ctx,
|
|
const ConstString &name) {
|
|
OptionValuePropertiesSP properties_sp(GetValueProperties());
|
|
if (properties_sp)
|
|
return properties_sp->GetSubProperty(exe_ctx, name);
|
|
return lldb::OptionValuePropertiesSP();
|
|
}
|
|
|
|
const char *Properties::GetExperimentalSettingsName() { return "experimental"; }
|
|
|
|
bool Properties::IsSettingExperimental(llvm::StringRef setting) {
|
|
if (setting.empty())
|
|
return false;
|
|
|
|
llvm::StringRef experimental = GetExperimentalSettingsName();
|
|
size_t dot_pos = setting.find_first_of('.');
|
|
return setting.take_front(dot_pos) == experimental;
|
|
}
|