]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueSInt64.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / tools / lldb / include / lldb / Interpreter / OptionValueSInt64.h
1 //===-- OptionValueSInt64.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_OptionValueSInt64_h_
11 #define liblldb_OptionValueSInt64_h_
12
13 // C Includes
14 // C++ Includes
15 // Other libraries and framework includes
16 // Project includes
17 #include "lldb/Interpreter/OptionValue.h"
18
19 namespace lldb_private {
20
21 class OptionValueSInt64 : public OptionValue
22 {
23 public:
24     OptionValueSInt64 () :
25         OptionValue(),
26         m_current_value (0),
27         m_default_value (0),
28         m_min_value (INT64_MIN),
29         m_max_value (INT64_MAX)
30     {
31     }
32
33     OptionValueSInt64 (int64_t value) :
34         OptionValue(),
35         m_current_value (value),
36         m_default_value (value),
37         m_min_value (INT64_MIN),
38         m_max_value (INT64_MAX)
39     {
40     }
41
42     OptionValueSInt64 (int64_t current_value,
43                        int64_t default_value) :
44         OptionValue(),
45         m_current_value (current_value),
46         m_default_value (default_value),
47         m_min_value (INT64_MIN),
48         m_max_value (INT64_MAX)
49     {
50     }
51     
52     OptionValueSInt64 (const OptionValueSInt64 &rhs) :
53         OptionValue(rhs),
54         m_current_value (rhs.m_current_value),
55         m_default_value (rhs.m_default_value),
56         m_min_value (rhs.m_min_value),
57         m_max_value (rhs.m_max_value)
58     {
59     }
60
61     virtual
62     ~OptionValueSInt64()
63     {
64     }
65     
66     //---------------------------------------------------------------------
67     // Virtual subclass pure virtual overrides
68     //---------------------------------------------------------------------
69     
70     virtual OptionValue::Type
71     GetType () const
72     {
73         return eTypeSInt64;
74     }
75     
76     virtual void
77     DumpValue (const ExecutionContext *exe_ctx, Stream &strm, uint32_t dump_mask);
78     
79     virtual Error
80     SetValueFromCString (const char *value,
81                          VarSetOperationType op = eVarSetOperationAssign);
82     
83     virtual bool
84     Clear ()
85     {
86         m_current_value = m_default_value;
87         m_value_was_set = false;
88         return true;
89     }
90     
91     virtual lldb::OptionValueSP
92     DeepCopy () const;
93     
94     //---------------------------------------------------------------------
95     // Subclass specific functions
96     //---------------------------------------------------------------------
97     
98     const int64_t &
99     operator = (int64_t value)
100     {
101         m_current_value = value;
102         return m_current_value;
103     }
104
105     int64_t
106     GetCurrentValue() const
107     {
108         return m_current_value;
109     }
110     
111     int64_t
112     GetDefaultValue() const
113     {
114         return m_default_value;
115     }
116     
117     bool
118     SetCurrentValue (int64_t value)
119     {
120         if (value >= m_min_value && value <= m_max_value)
121         {
122             m_current_value = value;
123             return true;
124         }
125         return false;
126     }
127     
128     bool
129     SetDefaultValue (int64_t value)
130     {
131         if (value >= m_min_value && value <= m_max_value)
132         {
133             m_default_value = value;
134             return true;
135         }
136         return false;
137     }
138     
139     void
140     SetMinimumValue (int64_t v)
141     {
142         m_min_value = v;
143     }
144
145     int64_t
146     GetMinimumValue () const
147     {
148         return m_min_value;
149     }
150     
151     void
152     SetMaximumValue (int64_t v)
153     {
154         m_max_value = v;
155     }
156
157     int64_t
158     GetMaximumValue () const
159     {
160         return m_max_value;
161     }
162
163 protected:
164     int64_t m_current_value;
165     int64_t m_default_value;
166     int64_t m_min_value;
167     int64_t m_max_value;
168 };
169
170 } // namespace lldb_private
171
172 #endif  // liblldb_OptionValueSInt64_h_