173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton//===-- OptionValueFormat.h -------------------------------------*- C++ -*-===// 273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// 373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// The LLVM Compiler Infrastructure 473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// 573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// This file is distributed under the University of Illinois Open Source 673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// License. See LICENSE.TXT for details. 773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// 873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton//===----------------------------------------------------------------------===// 973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 1073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton#ifndef liblldb_OptionValueFormat_h_ 1173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton#define liblldb_OptionValueFormat_h_ 1273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 1373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// C Includes 1473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// C++ Includes 1573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// Other libraries and framework includes 1673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton// Project includes 1773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton#include "lldb/Interpreter/OptionValue.h" 1873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 1973844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonnamespace lldb_private { 2073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 2173844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass OptionValueFormat : public OptionValue 2273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton{ 2373844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonpublic: 2473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton OptionValueFormat (lldb::Format value) : 2573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton OptionValue(), 2673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_current_value (value), 2773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_default_value (value) 2873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 2973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 3073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 3173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton OptionValueFormat (lldb::Format current_value, 3273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton lldb::Format default_value) : 3373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton OptionValue(), 3473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_current_value (current_value), 3573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_default_value (default_value) 3673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 3773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 3873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 3973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual 4073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton ~OptionValueFormat() 4173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 4273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 4373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 4473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton //--------------------------------------------------------------------- 4573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton // Virtual subclass pure virtual overrides 4673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton //--------------------------------------------------------------------- 4773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 4873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual OptionValue::Type 4973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton GetType () const 5073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 5173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton return eTypeFormat; 5273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 5373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 5473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual void 5573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask); 5673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 5773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual Error 5873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton SetValueFromCString (const char *value, 5973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton VarSetOperationType op = eVarSetOperationAssign); 6073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 6173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual bool 6273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton Clear () 6373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 6473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_current_value = m_default_value; 6573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_value_was_set = false; 6673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton return true; 6773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 6873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 6973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual lldb::OptionValueSP 7073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton DeepCopy () const; 7173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 7273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton //--------------------------------------------------------------------- 7373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton // Subclass specific functions 7473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton //--------------------------------------------------------------------- 7573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 7673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton lldb::Format 7773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton GetCurrentValue() const 7873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 7973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton return m_current_value; 8073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 8173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 8273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton lldb::Format 8373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton GetDefaultValue() const 8473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 8573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton return m_default_value; 8673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 8773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 8873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton void 8973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton SetCurrentValue (lldb::Format value) 9073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 9173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_current_value = value; 9273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 9373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 9473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton void 9573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton SetDefaultValue (lldb::Format value) 9673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 9773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_default_value = value; 9873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 9973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 10073844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonprotected: 10173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton lldb::Format m_current_value; 10273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton lldb::Format m_default_value; 10373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton}; 10473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 10573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton} // namespace lldb_private 10673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 10773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton#endif // liblldb_OptionValueFormat_h_ 108