1*b842f2ecSJim Ingham //===-- SBBreakpointOptionCommon.h ------------------------------------------*- C++ -*-===//
2*b842f2ecSJim Ingham //
3*b842f2ecSJim Ingham //                     The LLVM Compiler Infrastructure
4*b842f2ecSJim Ingham //
5*b842f2ecSJim Ingham // This file is distributed under the University of Illinois Open Source
6*b842f2ecSJim Ingham // License. See LICENSE.TXT for details.
7*b842f2ecSJim Ingham //
8*b842f2ecSJim Ingham //===----------------------------------------------------------------------===//
9*b842f2ecSJim Ingham 
10*b842f2ecSJim Ingham #ifndef LLDB_SBBreakpointOptionCommons_h_
11*b842f2ecSJim Ingham #define LLDB_SBBreakpointOptionCommons_h_
12*b842f2ecSJim Ingham 
13*b842f2ecSJim Ingham #include "lldb/API/SBDefines.h"
14*b842f2ecSJim Ingham #include "lldb/Utility/Baton.h"
15*b842f2ecSJim Ingham 
16*b842f2ecSJim Ingham namespace lldb
17*b842f2ecSJim Ingham {
18*b842f2ecSJim Ingham struct CallbackData {
19*b842f2ecSJim Ingham   SBBreakpointHitCallback callback;
20*b842f2ecSJim Ingham   void *callback_baton;
21*b842f2ecSJim Ingham };
22*b842f2ecSJim Ingham 
23*b842f2ecSJim Ingham class SBBreakpointCallbackBaton : public lldb_private::TypedBaton<CallbackData> {
24*b842f2ecSJim Ingham public:
25*b842f2ecSJim Ingham   SBBreakpointCallbackBaton(SBBreakpointHitCallback callback,
26*b842f2ecSJim Ingham                             void *baton);
27*b842f2ecSJim Ingham 
28*b842f2ecSJim Ingham   static bool PrivateBreakpointHitCallback(void *baton,
29*b842f2ecSJim Ingham                                            lldb_private::StoppointCallbackContext *ctx,
30*b842f2ecSJim Ingham                                            lldb::user_id_t break_id,
31*b842f2ecSJim Ingham                                            lldb::user_id_t break_loc_id);
32*b842f2ecSJim Ingham };
33*b842f2ecSJim Ingham 
34*b842f2ecSJim Ingham } // namespace lldb
35*b842f2ecSJim Ingham #endif // LLDB_SBBreakpointOptionCommons_h_
36