OptionValueUUID.h revision 437b5bccea45a5981edbbbeb4e23424aec4ce774
1//===-- OptionValueUUID.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_OptionValueUUID_h_
11#define liblldb_OptionValueUUID_h_
12
13// C Includes
14// C++ Includes
15// Other libraries and framework includes
16// Project includes
17#include "lldb/Core/UUID.h"
18#include "lldb/Interpreter/OptionValue.h"
19
20namespace lldb_private {
21
22class OptionValueUUID : public OptionValue
23{
24public:
25    OptionValueUUID () :
26        OptionValue(),
27        m_uuid ()
28    {
29    }
30
31    OptionValueUUID (const UUID &uuid) :
32        OptionValue(),
33        m_uuid (uuid)
34    {
35    }
36
37    virtual
38    ~OptionValueUUID()
39    {
40    }
41
42    //---------------------------------------------------------------------
43    // Virtual subclass pure virtual overrides
44    //---------------------------------------------------------------------
45
46    virtual OptionValue::Type
47    GetType () const
48    {
49        return eTypeUUID;
50    }
51
52    virtual void
53    DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask);
54
55    virtual Error
56    SetValueFromCString (const char *value,
57                         VarSetOperationType op = eVarSetOperationAssign);
58
59    virtual bool
60    Clear ()
61    {
62        m_uuid.Clear();
63        m_value_was_set = false;
64        return true;
65    }
66
67    virtual lldb::OptionValueSP
68    DeepCopy () const;
69
70    //---------------------------------------------------------------------
71    // Subclass specific functions
72    //---------------------------------------------------------------------
73
74    UUID &
75    GetCurrentValue()
76    {
77        return m_uuid;
78    }
79
80    const UUID &
81    GetCurrentValue() const
82    {
83        return m_uuid;
84    }
85
86    void
87    SetCurrentValue (const UUID &value)
88    {
89        m_uuid = value;
90    }
91
92    virtual size_t
93    AutoComplete (CommandInterpreter &interpreter,
94                  const char *s,
95                  int match_start_point,
96                  int max_return_elements,
97                  bool &word_complete,
98                  StringList &matches);
99
100protected:
101    UUID m_uuid;
102};
103
104} // namespace lldb_private
105
106#endif  // liblldb_OptionValueUUID_h_
107