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