173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton//===-- OptionValueFileSpecList.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_OptionValueFileSpecList_h_ 1173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton#define liblldb_OptionValueFileSpecList_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/Core/FileSpecList.h" 1873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton#include "lldb/Interpreter/OptionValue.h" 1973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 2073844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonnamespace lldb_private { 2173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 2273844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonclass OptionValueFileSpecList : public OptionValue 2373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton{ 2473844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonpublic: 2573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton OptionValueFileSpecList () : 2673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton OptionValue(), 2773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_current_value () 2873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 2973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 3073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 3173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton OptionValueFileSpecList (const FileSpecList ¤t_value) : 3273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton OptionValue(), 3373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_current_value (current_value) 3473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 3573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 3673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 3773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 3873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual 3973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton ~OptionValueFileSpecList() 4073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 4173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 4273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 4373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton //--------------------------------------------------------------------- 4473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton // Virtual subclass pure virtual overrides 4573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton //--------------------------------------------------------------------- 4673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 4773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual OptionValue::Type 4873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton GetType () const 4973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 5073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton return eTypeFileSpecList; 5173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 5273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 5373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual void 5473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask); 5573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 5673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual Error 5773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton SetValueFromCString (const char *value, 5873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton VarSetOperationType op = eVarSetOperationAssign); 5973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 6073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual bool 6173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton Clear () 6273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 6373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_current_value.Clear(); 6473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_value_was_set = false; 6573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton return true; 6673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 6773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 6873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual lldb::OptionValueSP 6973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton DeepCopy () const; 7073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 7173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton virtual bool 7273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton IsAggregateValue () const 7373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 7473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton return true; 7573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 7673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 7773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton //--------------------------------------------------------------------- 7873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton // Subclass specific functions 7973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton //--------------------------------------------------------------------- 8073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 8173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton FileSpecList & 8273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton GetCurrentValue() 8373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 8473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton return m_current_value; 8573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 8673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 8773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton const FileSpecList & 8873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton GetCurrentValue() const 8973844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 9073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton return m_current_value; 9173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 9273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 9373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton void 9473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton SetCurrentValue (const FileSpecList &value) 9573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton { 9673844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton m_current_value = value; 9773844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton } 9873844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 9973844aa19a7360b662e2be710fc3c969d6c86606Greg Claytonprotected: 10073844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton FileSpecList m_current_value; 10173844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton}; 10273844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 10373844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton} // namespace lldb_private 10473844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton 10573844aa19a7360b662e2be710fc3c969d6c86606Greg Clayton#endif // liblldb_OptionValueFileSpecList_h_ 106