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
15namespace lldb_private {
16
17// CommandObjectMultiwordBreakpoint
18
19class CommandObjectMultiwordBreakpoint : public CommandObjectMultiword {
20public:
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
39private:
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