1254721Semaste//===-- OptionValueUUID.h --------------------------------------*- C++ -*-===//
2254721Semaste//
3254721Semaste//                     The LLVM Compiler Infrastructure
4254721Semaste//
5254721Semaste// This file is distributed under the University of Illinois Open Source
6254721Semaste// License. See LICENSE.TXT for details.
7254721Semaste//
8254721Semaste//===----------------------------------------------------------------------===//
9254721Semaste
10254721Semaste#ifndef liblldb_OptionValueUUID_h_
11254721Semaste#define liblldb_OptionValueUUID_h_
12254721Semaste
13254721Semaste// C Includes
14254721Semaste// C++ Includes
15254721Semaste// Other libraries and framework includes
16254721Semaste// Project includes
17254721Semaste#include "lldb/Core/UUID.h"
18254721Semaste#include "lldb/Interpreter/OptionValue.h"
19254721Semaste
20254721Semastenamespace lldb_private {
21254721Semaste
22254721Semasteclass OptionValueUUID : public OptionValue
23254721Semaste{
24254721Semastepublic:
25254721Semaste    OptionValueUUID () :
26254721Semaste        OptionValue(),
27254721Semaste        m_uuid ()
28254721Semaste    {
29254721Semaste    }
30254721Semaste
31254721Semaste    OptionValueUUID (const UUID &uuid) :
32254721Semaste        OptionValue(),
33254721Semaste        m_uuid (uuid)
34254721Semaste    {
35254721Semaste    }
36254721Semaste
37254721Semaste    virtual
38254721Semaste    ~OptionValueUUID()
39254721Semaste    {
40254721Semaste    }
41254721Semaste
42254721Semaste    //---------------------------------------------------------------------
43254721Semaste    // Virtual subclass pure virtual overrides
44254721Semaste    //---------------------------------------------------------------------
45254721Semaste
46254721Semaste    virtual OptionValue::Type
47254721Semaste    GetType () const
48254721Semaste    {
49254721Semaste        return eTypeUUID;
50254721Semaste    }
51254721Semaste
52254721Semaste    virtual void
53254721Semaste    DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask);
54254721Semaste
55254721Semaste    virtual Error
56254721Semaste    SetValueFromCString (const char *value,
57254721Semaste                         VarSetOperationType op = eVarSetOperationAssign);
58254721Semaste
59254721Semaste    virtual bool
60254721Semaste    Clear ()
61254721Semaste    {
62254721Semaste        m_uuid.Clear();
63254721Semaste        m_value_was_set = false;
64254721Semaste        return true;
65254721Semaste    }
66254721Semaste
67254721Semaste    virtual lldb::OptionValueSP
68254721Semaste    DeepCopy () const;
69254721Semaste
70254721Semaste    //---------------------------------------------------------------------
71254721Semaste    // Subclass specific functions
72254721Semaste    //---------------------------------------------------------------------
73254721Semaste
74254721Semaste    UUID &
75254721Semaste    GetCurrentValue()
76254721Semaste    {
77254721Semaste        return m_uuid;
78254721Semaste    }
79254721Semaste
80254721Semaste    const UUID &
81254721Semaste    GetCurrentValue() const
82254721Semaste    {
83254721Semaste        return m_uuid;
84254721Semaste    }
85254721Semaste
86254721Semaste    void
87254721Semaste    SetCurrentValue (const UUID &value)
88254721Semaste    {
89254721Semaste        m_uuid = value;
90254721Semaste    }
91254721Semaste
92254721Semaste    virtual size_t
93254721Semaste    AutoComplete (CommandInterpreter &interpreter,
94254721Semaste                  const char *s,
95254721Semaste                  int match_start_point,
96254721Semaste                  int max_return_elements,
97254721Semaste                  bool &word_complete,
98254721Semaste                  StringList &matches);
99254721Semaste
100254721Semasteprotected:
101254721Semaste    UUID m_uuid;
102254721Semaste};
103254721Semaste
104254721Semaste} // namespace lldb_private
105254721Semaste
106254721Semaste#endif  // liblldb_OptionValueUUID_h_
107