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