1 //===-- OptionValueUInt64.cpp ------------------------------------*- C++
4 // The LLVM Compiler Infrastructure
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
9 //===----------------------------------------------------------------------===//
11 #include "lldb/Interpreter/OptionValueUInt64.h"
15 // Other libraries and framework includes
17 #include "lldb/Host/StringConvert.h"
18 #include "lldb/Utility/Stream.h"
21 using namespace lldb_private;
23 lldb::OptionValueSP OptionValueUInt64::Create(llvm::StringRef value_str,
25 lldb::OptionValueSP value_sp(new OptionValueUInt64());
26 error = value_sp->SetValueFromString(value_str);
32 void OptionValueUInt64::DumpValue(const ExecutionContext *exe_ctx, Stream &strm,
34 if (dump_mask & eDumpOptionType)
35 strm.Printf("(%s)", GetTypeAsCString());
36 if (dump_mask & eDumpOptionValue) {
37 if (dump_mask & eDumpOptionType)
38 strm.PutCString(" = ");
39 strm.Printf("%" PRIu64, m_current_value);
43 Status OptionValueUInt64::SetValueFromString(llvm::StringRef value_ref,
44 VarSetOperationType op) {
47 case eVarSetOperationClear:
52 case eVarSetOperationReplace:
53 case eVarSetOperationAssign: {
55 std::string value_str = value_ref.trim().str();
56 uint64_t value = StringConvert::ToUInt64(value_str.c_str(), 0, 0, &success);
58 m_value_was_set = true;
59 m_current_value = value;
62 error.SetErrorStringWithFormat("invalid uint64_t string value: '%s'",
67 case eVarSetOperationInsertBefore:
68 case eVarSetOperationInsertAfter:
69 case eVarSetOperationRemove:
70 case eVarSetOperationAppend:
71 case eVarSetOperationInvalid:
72 error = OptionValue::SetValueFromString(value_ref, op);
78 lldb::OptionValueSP OptionValueUInt64::DeepCopy() const {
79 return OptionValueSP(new OptionValueUInt64(*this));