1 //===-- CommandObjectBreakpoint.h -------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef liblldb_CommandObjectBreakpoint_h_
10 #define liblldb_CommandObjectBreakpoint_h_
11 
12 
13 #include "lldb/Breakpoint/BreakpointName.h"
14 #include "lldb/Interpreter/CommandObjectMultiword.h"
15 
16 namespace lldb_private {
17 
18 // CommandObjectMultiwordBreakpoint
19 
20 class CommandObjectMultiwordBreakpoint : public CommandObjectMultiword {
21 public:
22   CommandObjectMultiwordBreakpoint(CommandInterpreter &interpreter);
23 
24   ~CommandObjectMultiwordBreakpoint() override;
25 
26   static void VerifyBreakpointOrLocationIDs(
27       Args &args, Target *target, CommandReturnObject &result,
28       BreakpointIDList *valid_ids,
29       BreakpointName::Permissions ::PermissionKinds purpose) {
30     VerifyIDs(args, target, true, result, valid_ids, purpose);
31   }
32 
33   static void
34   VerifyBreakpointIDs(Args &args, Target *target, CommandReturnObject &result,
35                       BreakpointIDList *valid_ids,
36                       BreakpointName::Permissions::PermissionKinds purpose) {
37     VerifyIDs(args, target, false, result, valid_ids, purpose);
38   }
39 
40 private:
41   static void VerifyIDs(Args &args, Target *target, bool allow_locations,
42                         CommandReturnObject &result,
43                         BreakpointIDList *valid_ids,
44                         BreakpointName::Permissions::PermissionKinds purpose);
45 };
46 
47 } // namespace lldb_private
48 
49 #endif // liblldb_CommandObjectBreakpoint_h_
50