Home | History | Annotate | Download | only in Interpreter
      1 //===-- OptionValueFileSpecList.h -------------------------------*- C++ -*-===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 #ifndef liblldb_OptionValueFileSpecList_h_
     11 #define liblldb_OptionValueFileSpecList_h_
     12 
     13 // C Includes
     14 // C++ Includes
     15 // Other libraries and framework includes
     16 // Project includes
     17 #include "lldb/Core/FileSpecList.h"
     18 #include "lldb/Interpreter/OptionValue.h"
     19 
     20 namespace lldb_private {
     21 
     22 class OptionValueFileSpecList : public OptionValue
     23 {
     24 public:
     25     OptionValueFileSpecList () :
     26         OptionValue(),
     27         m_current_value ()
     28     {
     29     }
     30 
     31     OptionValueFileSpecList (const FileSpecList &current_value) :
     32         OptionValue(),
     33         m_current_value (current_value)
     34     {
     35     }
     36 
     37 
     38     virtual
     39     ~OptionValueFileSpecList()
     40     {
     41     }
     42 
     43     //---------------------------------------------------------------------
     44     // Virtual subclass pure virtual overrides
     45     //---------------------------------------------------------------------
     46 
     47     virtual OptionValue::Type
     48     GetType () const
     49     {
     50         return eTypeFileSpecList;
     51     }
     52 
     53     virtual void
     54     DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask);
     55 
     56     virtual Error
     57     SetValueFromCString (const char *value,
     58                          VarSetOperationType op = eVarSetOperationAssign);
     59 
     60     virtual bool
     61     Clear ()
     62     {
     63         m_current_value.Clear();
     64         m_value_was_set = false;
     65         return true;
     66     }
     67 
     68     virtual lldb::OptionValueSP
     69     DeepCopy () const;
     70 
     71     virtual bool
     72     IsAggregateValue () const
     73     {
     74         return true;
     75     }
     76 
     77     //---------------------------------------------------------------------
     78     // Subclass specific functions
     79     //---------------------------------------------------------------------
     80 
     81     FileSpecList &
     82     GetCurrentValue()
     83     {
     84         return m_current_value;
     85     }
     86 
     87     const FileSpecList &
     88     GetCurrentValue() const
     89     {
     90         return m_current_value;
     91     }
     92 
     93     void
     94     SetCurrentValue (const FileSpecList &value)
     95     {
     96         m_current_value = value;
     97     }
     98 
     99 protected:
    100     FileSpecList m_current_value;
    101 };
    102 
    103 } // namespace lldb_private
    104 
    105 #endif  // liblldb_OptionValueFileSpecList_h_
    106