1//===-- SBExpressionOptions.cpp ---------------------------------------------*- 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#include "lldb/API/SBExpressionOptions.h"
11#include "lldb/API/SBStream.h"
12
13#include "lldb/Target/Target.h"
14
15using namespace lldb;
16using namespace lldb_private;
17
18
19SBExpressionOptions::SBExpressionOptions () :
20    m_opaque_ap(new EvaluateExpressionOptions())
21{
22}
23
24SBExpressionOptions::SBExpressionOptions (const SBExpressionOptions &rhs)
25{
26    m_opaque_ap.reset(new EvaluateExpressionOptions());
27    *(m_opaque_ap.get()) = rhs.ref();
28}
29
30const SBExpressionOptions &
31SBExpressionOptions::operator = (const SBExpressionOptions &rhs)
32{
33    if (this != &rhs)
34    {
35        this->ref() = rhs.ref();
36    }
37    return *this;
38}
39
40SBExpressionOptions::~SBExpressionOptions()
41{
42}
43
44bool
45SBExpressionOptions::GetCoerceResultToId () const
46{
47    return m_opaque_ap->DoesCoerceToId ();
48}
49
50void
51SBExpressionOptions::SetCoerceResultToId (bool coerce)
52{
53    m_opaque_ap->SetCoerceToId (coerce);
54}
55
56bool
57SBExpressionOptions::GetUnwindOnError () const
58{
59    return m_opaque_ap->DoesUnwindOnError ();
60}
61
62void
63SBExpressionOptions::SetUnwindOnError (bool unwind)
64{
65    m_opaque_ap->SetUnwindOnError (unwind);
66}
67
68bool
69SBExpressionOptions::GetIgnoreBreakpoints () const
70{
71    return m_opaque_ap->DoesIgnoreBreakpoints ();
72}
73
74void
75SBExpressionOptions::SetIgnoreBreakpoints (bool ignore)
76{
77    m_opaque_ap->SetIgnoreBreakpoints (ignore);
78}
79
80lldb::DynamicValueType
81SBExpressionOptions::GetFetchDynamicValue () const
82{
83    return m_opaque_ap->GetUseDynamic ();
84}
85
86void
87SBExpressionOptions::SetFetchDynamicValue (lldb::DynamicValueType dynamic)
88{
89    m_opaque_ap->SetUseDynamic (dynamic);
90}
91
92uint32_t
93SBExpressionOptions::GetTimeoutInMicroSeconds () const
94{
95    return m_opaque_ap->GetTimeoutUsec ();
96}
97
98void
99SBExpressionOptions::SetTimeoutInMicroSeconds (uint32_t timeout)
100{
101    m_opaque_ap->SetTimeoutUsec (timeout);
102}
103
104bool
105SBExpressionOptions::GetTryAllThreads () const
106{
107    return m_opaque_ap->GetRunOthers ();
108}
109
110void
111SBExpressionOptions::SetTryAllThreads (bool run_others)
112{
113    m_opaque_ap->SetRunOthers (run_others);
114}
115
116EvaluateExpressionOptions *
117SBExpressionOptions::get() const
118{
119    return m_opaque_ap.get();
120}
121
122EvaluateExpressionOptions &
123SBExpressionOptions::ref () const
124{
125    return *(m_opaque_ap.get());
126}
127