147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham//===-- SBExpressionOptions.cpp ---------------------------------------------*- C++ -*-===//
247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham//
347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham//                     The LLVM Compiler Infrastructure
447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham//
547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham// This file is distributed under the University of Illinois Open Source
647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham// License. See LICENSE.TXT for details.
747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham//
847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham//===----------------------------------------------------------------------===//
947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
1047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham#include "lldb/API/SBExpressionOptions.h"
1147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham#include "lldb/API/SBStream.h"
1247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
1347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham#include "lldb/Target/Target.h"
1447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
1547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamusing namespace lldb;
1647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamusing namespace lldb_private;
1747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
1847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
1975a443b04197d18c7034968e11ce831166df3703Greg ClaytonSBExpressionOptions::SBExpressionOptions () :
2075a443b04197d18c7034968e11ce831166df3703Greg Clayton    m_opaque_ap(new EvaluateExpressionOptions())
2147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
2247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
2347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
2447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim InghamSBExpressionOptions::SBExpressionOptions (const SBExpressionOptions &rhs)
2547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
2647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    m_opaque_ap.reset(new EvaluateExpressionOptions());
2747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    *(m_opaque_ap.get()) = rhs.ref();
2847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
2947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
3047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamconst SBExpressionOptions &
3147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim InghamSBExpressionOptions::operator = (const SBExpressionOptions &rhs)
3247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
3347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    if (this != &rhs)
3447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    {
3547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham        this->ref() = rhs.ref();
3647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    }
3747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    return *this;
3847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
3947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
4047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim InghamSBExpressionOptions::~SBExpressionOptions()
4147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
4247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
4347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
4447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghambool
4575a443b04197d18c7034968e11ce831166df3703Greg ClaytonSBExpressionOptions::GetCoerceResultToId () const
4647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
4747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    return m_opaque_ap->DoesCoerceToId ();
4847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
4947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
5047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamvoid
5175a443b04197d18c7034968e11ce831166df3703Greg ClaytonSBExpressionOptions::SetCoerceResultToId (bool coerce)
5247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
5347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    m_opaque_ap->SetCoerceToId (coerce);
5447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
5547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
5647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghambool
5775a443b04197d18c7034968e11ce831166df3703Greg ClaytonSBExpressionOptions::GetUnwindOnError () const
5847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
5947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    return m_opaque_ap->DoesUnwindOnError ();
6047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
6147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
6247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamvoid
6347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim InghamSBExpressionOptions::SetUnwindOnError (bool unwind)
6447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
6547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    m_opaque_ap->SetUnwindOnError (unwind);
6647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
6747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
68b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghambool
69b794020ffbd6473c59a6e98be044df50abf7fc30Jim InghamSBExpressionOptions::GetIgnoreBreakpoints () const
70b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham{
71b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham    return m_opaque_ap->DoesIgnoreBreakpoints ();
72b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham}
73b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham
74b794020ffbd6473c59a6e98be044df50abf7fc30Jim Inghamvoid
75b794020ffbd6473c59a6e98be044df50abf7fc30Jim InghamSBExpressionOptions::SetIgnoreBreakpoints (bool ignore)
76b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham{
77b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham    m_opaque_ap->SetIgnoreBreakpoints (ignore);
78b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham}
79b794020ffbd6473c59a6e98be044df50abf7fc30Jim Ingham
8047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamlldb::DynamicValueType
8175a443b04197d18c7034968e11ce831166df3703Greg ClaytonSBExpressionOptions::GetFetchDynamicValue () const
8247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
8347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    return m_opaque_ap->GetUseDynamic ();
8447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
8547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
8647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamvoid
8775a443b04197d18c7034968e11ce831166df3703Greg ClaytonSBExpressionOptions::SetFetchDynamicValue (lldb::DynamicValueType dynamic)
8847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
8947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    m_opaque_ap->SetUseDynamic (dynamic);
9047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
9147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
9247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamuint32_t
9375a443b04197d18c7034968e11ce831166df3703Greg ClaytonSBExpressionOptions::GetTimeoutInMicroSeconds () const
9447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
9547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    return m_opaque_ap->GetTimeoutUsec ();
9647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
9747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
9847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamvoid
9975a443b04197d18c7034968e11ce831166df3703Greg ClaytonSBExpressionOptions::SetTimeoutInMicroSeconds (uint32_t timeout)
10047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
10147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    m_opaque_ap->SetTimeoutUsec (timeout);
10247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
10347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
10447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghambool
10575a443b04197d18c7034968e11ce831166df3703Greg ClaytonSBExpressionOptions::GetTryAllThreads () const
10647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
10747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    return m_opaque_ap->GetRunOthers ();
10847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
10947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
11047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Inghamvoid
11175a443b04197d18c7034968e11ce831166df3703Greg ClaytonSBExpressionOptions::SetTryAllThreads (bool run_others)
11247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
11347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    m_opaque_ap->SetRunOthers (run_others);
11447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
11547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
11647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim InghamEvaluateExpressionOptions *
11747beabb1386be44e3f90dbc30a0b22c23b93a4dcJim InghamSBExpressionOptions::get() const
11847beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
11947beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    return m_opaque_ap.get();
12047beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
12147beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham
12247beabb1386be44e3f90dbc30a0b22c23b93a4dcJim InghamEvaluateExpressionOptions &
12347beabb1386be44e3f90dbc30a0b22c23b93a4dcJim InghamSBExpressionOptions::ref () const
12447beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham{
12547beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham    return *(m_opaque_ap.get());
12647beabb1386be44e3f90dbc30a0b22c23b93a4dcJim Ingham}
127