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 LLDB_SOURCE_COMMANDS_COMMANDOBJECTBREAKPOINT_H
10 #define LLDB_SOURCE_COMMANDS_COMMANDOBJECTBREAKPOINT_H
11 
12 #include "lldb/Breakpoint/BreakpointName.h"
13 #include "lldb/Interpreter/CommandObjectMultiword.h"
14 
15 namespace lldb_private {
16 
17 // CommandObjectMultiwordBreakpoint
18 
19 class CommandObjectMultiwordBreakpoint : public CommandObjectMultiword {
20 public:
21   CommandObjectMultiwordBreakpoint(CommandInterpreter &interpreter);
22 
23   ~CommandObjectMultiwordBreakpoint() override;
24 
25   static void VerifyBreakpointOrLocationIDs(
26       Args &args, Target *target, CommandReturnObject &result,
27       BreakpointIDList *valid_ids,
28       BreakpointName::Permissions ::PermissionKinds purpose) {
29     VerifyIDs(args, target, true, result, valid_ids, purpose);
30   }
31 
32   static void
33   VerifyBreakpointIDs(Args &args, Target *target, CommandReturnObject &result,
34                       BreakpointIDList *valid_ids,
35                       BreakpointName::Permissions::PermissionKinds purpose) {
36     VerifyIDs(args, target, false, result, valid_ids, purpose);
37   }
38 
39 private:
40   static void VerifyIDs(Args &args, Target *target, bool allow_locations,
41                         CommandReturnObject &result,
42                         BreakpointIDList *valid_ids,
43                         BreakpointName::Permissions::PermissionKinds purpose);
44 };
45 
46 } // namespace lldb_private
47 
48 #endif // LLDB_SOURCE_COMMANDS_COMMANDOBJECTBREAKPOINT_H
49