1309568Sglebius//===-- OptionValuePathMappings.h -------------------------------*- C++ -*-===// 2309568Sglebius// 3309568Sglebius// The LLVM Compiler Infrastructure 4309568Sglebius// 5309568Sglebius// This file is distributed under the University of Illinois Open Source 6309568Sglebius// License. See LICENSE.TXT for details. 7309568Sglebius// 8309568Sglebius//===----------------------------------------------------------------------===// 9309568Sglebius 10309568Sglebius#ifndef liblldb_OptionValuePathMappings_h_ 11309568Sglebius#define liblldb_OptionValuePathMappings_h_ 12309568Sglebius 13309568Sglebius// C Includes 14309568Sglebius// C++ Includes 15309568Sglebius// Other libraries and framework includes 16309568Sglebius// Project includes 17309568Sglebius#include "lldb/Target/PathMappingList.h" 18309568Sglebius#include "lldb/Interpreter/OptionValue.h" 19309568Sglebius 20309568Sglebiusnamespace lldb_private { 21309568Sglebius 22309568Sglebiusclass OptionValuePathMappings : public OptionValue 23309568Sglebius{ 24309568Sglebiuspublic: 25309568Sglebius OptionValuePathMappings (bool notify_changes) : 26309568Sglebius OptionValue(), 27309568Sglebius m_path_mappings (), 28309568Sglebius m_notify_changes (notify_changes) 29309568Sglebius { 30309568Sglebius } 31309568Sglebius 32309568Sglebius virtual 33309568Sglebius ~OptionValuePathMappings() 34309568Sglebius { 35309568Sglebius } 36309568Sglebius 37309568Sglebius //--------------------------------------------------------------------- 38309568Sglebius // Virtual subclass pure virtual overrides 39309568Sglebius //--------------------------------------------------------------------- 40309568Sglebius 41309568Sglebius virtual OptionValue::Type 42309568Sglebius GetType () const 43309568Sglebius { 44309568Sglebius return eTypePathMap; 45309568Sglebius } 46309568Sglebius 47309568Sglebius virtual void 48309568Sglebius DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask); 49 50 virtual Error 51 SetValueFromCString (const char *value, 52 VarSetOperationType op = eVarSetOperationAssign); 53 54 virtual bool 55 Clear () 56 { 57 m_path_mappings.Clear(m_notify_changes); 58 m_value_was_set = false; 59 return true; 60 } 61 62 virtual lldb::OptionValueSP 63 DeepCopy () const; 64 65 virtual bool 66 IsAggregateValue () const 67 { 68 return true; 69 } 70 71 //--------------------------------------------------------------------- 72 // Subclass specific functions 73 //--------------------------------------------------------------------- 74 75 PathMappingList & 76 GetCurrentValue() 77 { 78 return m_path_mappings; 79 } 80 81 const PathMappingList & 82 GetCurrentValue() const 83 { 84 return m_path_mappings; 85 } 86 87protected: 88 PathMappingList m_path_mappings; 89 bool m_notify_changes; 90}; 91 92} // namespace lldb_private 93 94#endif // liblldb_OptionValuePathMappings_h_ 95