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