Home | History | Annotate | Download | only in Interpreter
      1 //===-- OptionGroupValueObjectDisplay.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_OptionGroupValueObjectDisplay_h_
     11 #define liblldb_OptionGroupValueObjectDisplay_h_
     12 
     13 // C Includes
     14 // C++ Includes
     15 // Other libraries and framework includes
     16 // Project includes
     17 #include "lldb/Core/ValueObject.h"
     18 #include "lldb/Interpreter/Options.h"
     19 
     20 namespace lldb_private {
     21 
     22 //-------------------------------------------------------------------------
     23 // OptionGroupValueObjectDisplay
     24 //-------------------------------------------------------------------------
     25 
     26 class OptionGroupValueObjectDisplay : public OptionGroup
     27 {
     28 public:
     29 
     30     OptionGroupValueObjectDisplay ();
     31 
     32     virtual
     33     ~OptionGroupValueObjectDisplay ();
     34 
     35 
     36     virtual uint32_t
     37     GetNumDefinitions ();
     38 
     39     virtual const OptionDefinition*
     40     GetDefinitions ();
     41 
     42     virtual Error
     43     SetOptionValue (CommandInterpreter &interpreter,
     44                     uint32_t option_idx,
     45                     const char *option_value);
     46 
     47     virtual void
     48     OptionParsingStarting (CommandInterpreter &interpreter);
     49 
     50     bool
     51     AnyOptionWasSet () const
     52     {
     53         return show_types == true ||
     54                no_summary_depth  != 0 ||
     55                show_location == true ||
     56                flat_output == true ||
     57                use_objc == true ||
     58                max_depth != UINT32_MAX ||
     59                ptr_depth != 0 ||
     60                use_synth == false ||
     61                be_raw == true ||
     62                ignore_cap == true;
     63     }
     64 
     65     ValueObject::DumpValueObjectOptions
     66     GetAsDumpOptions (bool objc_is_compact = false,
     67                       lldb::Format format = lldb::eFormatDefault,
     68                       lldb::TypeSummaryImplSP summary_sp = lldb::TypeSummaryImplSP());
     69 
     70     bool show_types;
     71     uint32_t no_summary_depth;
     72     bool show_location;
     73     bool flat_output;
     74     bool use_objc;
     75     uint32_t max_depth;
     76     uint32_t ptr_depth;
     77     lldb::DynamicValueType use_dynamic;
     78     bool use_synth;
     79     bool be_raw;
     80     bool ignore_cap;
     81 };
     82 
     83 } // namespace lldb_private
     84 
     85 #endif  // liblldb_OptionGroupValueObjectDisplay_h_
     86