blob: 974467c4f1f1e0bc4d9036a3853c687474c5b312 [file] [log] [blame]
//===-- ThreadPlanTestCondition.h -----------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef liblldb_ThreadPlanTestCondition_h_
#define liblldb_ThreadPlanTestCondition_h_
// C Includes
// C++ Includes
// Other libraries and framework includes
// Project includes
#include "lldb/Core/AddressRange.h"
#include "lldb/Target/ExecutionContext.h"
#include "lldb/Expression/ClangUserExpression.h"
#include "lldb/Target/StackID.h"
#include "lldb/Target/Thread.h"
#include "lldb/Target/ThreadPlan.h"
#include "lldb/Target/ThreadPlanShouldStopHere.h"
namespace lldb_private {
class ThreadPlanTestCondition : public ThreadPlan
{
public:
virtual ~ThreadPlanTestCondition ();
ThreadPlanTestCondition (Thread &thread,
ExecutionContext &exe_ctx,
ClangUserExpression *expression,
const lldb::BreakpointLocationSP &break_loc_sp,
bool stop_others);
virtual void GetDescription (Stream *s, lldb::DescriptionLevel level);
virtual bool ValidatePlan (Stream *error);
virtual bool PlanExplainsStop ();
virtual bool ShouldStop (Event *event_ptr);
virtual Vote ShouldReportStop (Event *event_ptr);
virtual bool StopOthers ();
virtual lldb::StateType GetPlanRunState ();
virtual bool WillStop ();
virtual bool MischiefManaged ();
virtual void DidPush ();
protected:
private:
ClangUserExpression *m_expression;
ExecutionContext m_exe_ctx;
lldb::ThreadPlanSP m_expression_plan_sp;
lldb::BreakpointLocationSP m_break_loc_sp;
bool m_did_stop;
bool m_stop_others;
DISALLOW_COPY_AND_ASSIGN (ThreadPlanTestCondition);
};
} // namespace lldb_private
#endif // liblldb_ThreadPlanTestCondition_h_