blob: 9733d25b5e4b37975c067379c3812bb7191147a8 [file] [log] [blame]
Jim Ingham47beabb2012-10-16 21:41:58 +00001//===-- 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
Greg Clayton75a443b2012-10-16 22:58:25 +000019SBExpressionOptions::SBExpressionOptions () :
20 m_opaque_ap(new EvaluateExpressionOptions())
Jim Ingham47beabb2012-10-16 21:41:58 +000021{
Jim Ingham47beabb2012-10-16 21:41:58 +000022}
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
Greg Clayton75a443b2012-10-16 22:58:25 +000045SBExpressionOptions::GetCoerceResultToId () const
Jim Ingham47beabb2012-10-16 21:41:58 +000046{
47 return m_opaque_ap->DoesCoerceToId ();
48}
49
50void
Greg Clayton75a443b2012-10-16 22:58:25 +000051SBExpressionOptions::SetCoerceResultToId (bool coerce)
Jim Ingham47beabb2012-10-16 21:41:58 +000052{
53 m_opaque_ap->SetCoerceToId (coerce);
54}
55
56bool
Greg Clayton75a443b2012-10-16 22:58:25 +000057SBExpressionOptions::GetUnwindOnError () const
Jim Ingham47beabb2012-10-16 21:41:58 +000058{
59 return m_opaque_ap->DoesUnwindOnError ();
60}
61
62void
63SBExpressionOptions::SetUnwindOnError (bool unwind)
64{
65 m_opaque_ap->SetUnwindOnError (unwind);
66}
67
Jim Ingham47beabb2012-10-16 21:41:58 +000068lldb::DynamicValueType
Greg Clayton75a443b2012-10-16 22:58:25 +000069SBExpressionOptions::GetFetchDynamicValue () const
Jim Ingham47beabb2012-10-16 21:41:58 +000070{
71 return m_opaque_ap->GetUseDynamic ();
72}
73
74void
Greg Clayton75a443b2012-10-16 22:58:25 +000075SBExpressionOptions::SetFetchDynamicValue (lldb::DynamicValueType dynamic)
Jim Ingham47beabb2012-10-16 21:41:58 +000076{
77 m_opaque_ap->SetUseDynamic (dynamic);
78}
79
80uint32_t
Greg Clayton75a443b2012-10-16 22:58:25 +000081SBExpressionOptions::GetTimeoutInMicroSeconds () const
Jim Ingham47beabb2012-10-16 21:41:58 +000082{
83 return m_opaque_ap->GetTimeoutUsec ();
84}
85
86void
Greg Clayton75a443b2012-10-16 22:58:25 +000087SBExpressionOptions::SetTimeoutInMicroSeconds (uint32_t timeout)
Jim Ingham47beabb2012-10-16 21:41:58 +000088{
89 m_opaque_ap->SetTimeoutUsec (timeout);
90}
91
92bool
Greg Clayton75a443b2012-10-16 22:58:25 +000093SBExpressionOptions::GetTryAllThreads () const
Jim Ingham47beabb2012-10-16 21:41:58 +000094{
95 return m_opaque_ap->GetRunOthers ();
96}
97
98void
Greg Clayton75a443b2012-10-16 22:58:25 +000099SBExpressionOptions::SetTryAllThreads (bool run_others)
Jim Ingham47beabb2012-10-16 21:41:58 +0000100{
101 m_opaque_ap->SetRunOthers (run_others);
102}
103
104EvaluateExpressionOptions *
105SBExpressionOptions::get() const
106{
107 return m_opaque_ap.get();
108}
109
110EvaluateExpressionOptions &
111SBExpressionOptions::ref () const
112{
113 return *(m_opaque_ap.get());
114}