1254721Semaste//===-- SBEvent.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 LLDB_SBExpressionOptions_h_
11254721Semaste#define LLDB_SBExpressionOptions_h_
12254721Semaste
13254721Semaste#include "lldb/API/SBDefines.h"
14254721Semaste
15254721Semaste#include <vector>
16254721Semaste
17254721Semastenamespace lldb {
18254721Semaste
19254721Semaste
20254721Semasteclass SBExpressionOptions
21254721Semaste{
22254721Semastepublic:
23254721Semaste    SBExpressionOptions();
24254721Semaste
25254721Semaste    SBExpressionOptions (const lldb::SBExpressionOptions &rhs);
26254721Semaste
27254721Semaste    ~SBExpressionOptions();
28254721Semaste
29254721Semaste    const SBExpressionOptions &
30254721Semaste    operator = (const lldb::SBExpressionOptions &rhs);
31254721Semaste
32254721Semaste    bool
33254721Semaste    GetCoerceResultToId () const;
34254721Semaste
35254721Semaste    void
36254721Semaste    SetCoerceResultToId (bool coerce = true);
37254721Semaste
38254721Semaste    bool
39254721Semaste    GetUnwindOnError () const;
40254721Semaste
41254721Semaste    void
42254721Semaste    SetUnwindOnError (bool unwind = true);
43254721Semaste
44254721Semaste    bool
45254721Semaste    GetIgnoreBreakpoints () const;
46254721Semaste
47254721Semaste    void
48254721Semaste    SetIgnoreBreakpoints (bool ignore = true);
49254721Semaste
50254721Semaste    lldb::DynamicValueType
51254721Semaste    GetFetchDynamicValue () const;
52254721Semaste
53254721Semaste    void
54254721Semaste    SetFetchDynamicValue (lldb::DynamicValueType dynamic = lldb::eDynamicCanRunTarget);
55254721Semaste
56254721Semaste    uint32_t
57254721Semaste    GetTimeoutInMicroSeconds () const;
58254721Semaste
59254721Semaste    void
60254721Semaste    SetTimeoutInMicroSeconds (uint32_t timeout = 0);
61254721Semaste
62254721Semaste    bool
63254721Semaste    GetTryAllThreads () const;
64254721Semaste
65254721Semaste    void
66254721Semaste    SetTryAllThreads (bool run_others = true);
67254721Semaste
68263367Semaste    bool
69263367Semaste    GetTrapExceptions () const;
70263367Semaste
71263367Semaste    void
72263367Semaste    SetTrapExceptions (bool trap_exceptions = true);
73263367Semaste
74254721Semasteprotected:
75254721Semaste
76254721Semaste    SBExpressionOptions (lldb_private::EvaluateExpressionOptions &expression_options);
77254721Semaste
78254721Semaste    lldb_private::EvaluateExpressionOptions *
79254721Semaste    get () const;
80254721Semaste
81254721Semaste    lldb_private::EvaluateExpressionOptions &
82254721Semaste    ref () const;
83254721Semaste
84254721Semaste    friend class SBFrame;
85254721Semaste    friend class SBValue;
86254721Semaste    friend class SBTarget;
87254721Semaste
88254721Semasteprivate:
89254721Semaste    // This auto_pointer is made in the constructor and is always valid.
90254721Semaste    mutable std::unique_ptr<lldb_private::EvaluateExpressionOptions> m_opaque_ap;
91254721Semaste};
92254721Semaste
93254721Semaste} // namespace lldb
94254721Semaste
95254721Semaste#endif  // LLDB_SBExpressionOptions_h_
96