SBExpressionOptions.h revision 81a96aa6242f7b559770f5dc62316253cb8cb0d4
1//===-- SBEvent.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 LLDB_SBExpressionOptions_h_
11#define LLDB_SBExpressionOptions_h_
12
13#include "lldb/API/SBDefines.h"
14
15#include <vector>
16
17namespace lldb {
18
19
20class SBExpressionOptions
21{
22public:
23    SBExpressionOptions();
24
25    SBExpressionOptions (const lldb::SBExpressionOptions &rhs);
26
27    ~SBExpressionOptions();
28
29    const SBExpressionOptions &
30    operator = (const lldb::SBExpressionOptions &rhs);
31
32    bool
33    GetCoerceResultToId () const;
34
35    void
36    SetCoerceResultToId (bool coerce = true);
37
38    bool
39    GetUnwindOnError () const;
40
41    void
42    SetUnwindOnError (bool unwind = true);
43
44    bool
45    GetIgnoreBreakpoints () const;
46
47    void
48    SetIgnoreBreakpoints (bool ignore = true);
49
50    lldb::DynamicValueType
51    GetFetchDynamicValue () const;
52
53    void
54    SetFetchDynamicValue (lldb::DynamicValueType dynamic = lldb::eDynamicCanRunTarget);
55
56    uint32_t
57    GetTimeoutInMicroSeconds () const;
58
59    void
60    SetTimeoutInMicroSeconds (uint32_t timeout = 0);
61
62    bool
63    GetTryAllThreads () const;
64
65    void
66    SetTryAllThreads (bool run_others = true);
67
68protected:
69
70    SBExpressionOptions (lldb_private::EvaluateExpressionOptions &expression_options);
71
72    lldb_private::EvaluateExpressionOptions *
73    get () const;
74
75    lldb_private::EvaluateExpressionOptions &
76    ref () const;
77
78    friend class SBFrame;
79    friend class SBValue;
80    friend class SBTarget;
81
82private:
83    // This auto_pointer is made in the constructor and is always valid.
84    mutable STD_UNIQUE_PTR(lldb_private::EvaluateExpressionOptions) m_opaque_ap;
85};
86
87} // namespace lldb
88
89#endif  // LLDB_SBExpressionOptions_h_
90