1b842f2ecSJim Ingham //===-- SBBreakpointOptionCommon.h ------------------------------------------*- C++ -*-===//
2b842f2ecSJim Ingham //
3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6b842f2ecSJim Ingham //
7b842f2ecSJim Ingham //===----------------------------------------------------------------------===//
8b842f2ecSJim Ingham 
9b842f2ecSJim Ingham #ifndef LLDB_SBBreakpointOptionCommons_h_
10b842f2ecSJim Ingham #define LLDB_SBBreakpointOptionCommons_h_
11b842f2ecSJim Ingham 
12b842f2ecSJim Ingham #include "lldb/API/SBDefines.h"
13b842f2ecSJim Ingham #include "lldb/Utility/Baton.h"
14b842f2ecSJim Ingham 
15b842f2ecSJim Ingham namespace lldb
16b842f2ecSJim Ingham {
17b842f2ecSJim Ingham struct CallbackData {
18b842f2ecSJim Ingham   SBBreakpointHitCallback callback;
19b842f2ecSJim Ingham   void *callback_baton;
20b842f2ecSJim Ingham };
21b842f2ecSJim Ingham 
22b842f2ecSJim Ingham class SBBreakpointCallbackBaton : public lldb_private::TypedBaton<CallbackData> {
23b842f2ecSJim Ingham public:
24b842f2ecSJim Ingham   SBBreakpointCallbackBaton(SBBreakpointHitCallback callback,
25b842f2ecSJim Ingham                             void *baton);
26b842f2ecSJim Ingham 
27e2564051SDavide Italiano   ~SBBreakpointCallbackBaton();
28e2564051SDavide Italiano 
29b842f2ecSJim Ingham   static bool PrivateBreakpointHitCallback(void *baton,
30b842f2ecSJim Ingham                                            lldb_private::StoppointCallbackContext *ctx,
31b842f2ecSJim Ingham                                            lldb::user_id_t break_id,
32b842f2ecSJim Ingham                                            lldb::user_id_t break_loc_id);
33b842f2ecSJim Ingham };
34b842f2ecSJim Ingham 
35b842f2ecSJim Ingham } // namespace lldb
36b842f2ecSJim Ingham #endif // LLDB_SBBreakpointOptionCommons_h_
37