Skip to content

Commit a92de02

Browse files
authored
[lldb-dap] Move registration of requests into DAP (NFC) (#139397)
Make the registration of request handlers a private implementation detail of the DAP class.
1 parent 617a540 commit a92de02

File tree

3 files changed

+52
-52
lines changed

3 files changed

+52
-52
lines changed

lldb/tools/lldb-dap/DAP.cpp

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ DAP::DAP(Log *log, const ReplMode default_repl_mode,
126126
[&](const ProgressEvent &event) { SendJSON(event.ToJSON()); }),
127127
reverse_request_seq(0), repl_mode(default_repl_mode) {
128128
configuration.preInitCommands = std::move(pre_init_commands);
129+
RegisterRequests();
129130
}
130131

131132
DAP::~DAP() = default;
@@ -1652,4 +1653,46 @@ void DAP::EventThread() {
16521653
}
16531654
}
16541655

1656+
void DAP::RegisterRequests() {
1657+
RegisterRequest<AttachRequestHandler>();
1658+
RegisterRequest<BreakpointLocationsRequestHandler>();
1659+
RegisterRequest<CancelRequestHandler>();
1660+
RegisterRequest<CompletionsRequestHandler>();
1661+
RegisterRequest<ConfigurationDoneRequestHandler>();
1662+
RegisterRequest<ContinueRequestHandler>();
1663+
RegisterRequest<DataBreakpointInfoRequestHandler>();
1664+
RegisterRequest<DisassembleRequestHandler>();
1665+
RegisterRequest<DisconnectRequestHandler>();
1666+
RegisterRequest<EvaluateRequestHandler>();
1667+
RegisterRequest<ExceptionInfoRequestHandler>();
1668+
RegisterRequest<InitializeRequestHandler>();
1669+
RegisterRequest<LaunchRequestHandler>();
1670+
RegisterRequest<LocationsRequestHandler>();
1671+
RegisterRequest<NextRequestHandler>();
1672+
RegisterRequest<PauseRequestHandler>();
1673+
RegisterRequest<ReadMemoryRequestHandler>();
1674+
RegisterRequest<RestartRequestHandler>();
1675+
RegisterRequest<ScopesRequestHandler>();
1676+
RegisterRequest<SetBreakpointsRequestHandler>();
1677+
RegisterRequest<SetDataBreakpointsRequestHandler>();
1678+
RegisterRequest<SetExceptionBreakpointsRequestHandler>();
1679+
RegisterRequest<SetFunctionBreakpointsRequestHandler>();
1680+
RegisterRequest<SetInstructionBreakpointsRequestHandler>();
1681+
RegisterRequest<SetVariableRequestHandler>();
1682+
RegisterRequest<SourceRequestHandler>();
1683+
RegisterRequest<StackTraceRequestHandler>();
1684+
RegisterRequest<StepInRequestHandler>();
1685+
RegisterRequest<StepInTargetsRequestHandler>();
1686+
RegisterRequest<StepOutRequestHandler>();
1687+
RegisterRequest<ThreadsRequestHandler>();
1688+
RegisterRequest<VariablesRequestHandler>();
1689+
1690+
// Custom requests
1691+
RegisterRequest<CompileUnitsRequestHandler>();
1692+
RegisterRequest<ModulesRequestHandler>();
1693+
1694+
// Testing requests
1695+
RegisterRequest<TestGetTargetBreakpointsRequestHandler>();
1696+
}
1697+
16551698
} // namespace lldb_dap

lldb/tools/lldb-dap/DAP.h

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,6 @@ struct DAP {
188188
// the old process here so we can detect this case and keep running.
189189
lldb::pid_t restarting_process_id;
190190
bool configuration_done;
191-
llvm::StringMap<std::unique_ptr<BaseRequestHandler>> request_handlers;
192191
bool waiting_for_run_in_terminal;
193192
ProgressEventReporter progress_event_reporter;
194193
// Keep track of the last stop thread index IDs as threads won't go away
@@ -377,11 +376,6 @@ struct DAP {
377376
});
378377
}
379378

380-
/// Registers a request handler.
381-
template <typename Handler> void RegisterRequest() {
382-
request_handlers[Handler::GetCommand()] = std::make_unique<Handler>(*this);
383-
}
384-
385379
/// The set of capablities supported by this adapter.
386380
protocol::Capabilities GetCapabilities();
387381

@@ -429,6 +423,15 @@ struct DAP {
429423
void StartProgressEventThread();
430424

431425
private:
426+
/// Registration of request handler.
427+
/// @{
428+
void RegisterRequests();
429+
template <typename Handler> void RegisterRequest() {
430+
request_handlers[Handler::GetCommand()] = std::make_unique<Handler>(*this);
431+
}
432+
llvm::StringMap<std::unique_ptr<BaseRequestHandler>> request_handlers;
433+
/// @}
434+
432435
/// Event threads.
433436
/// @{
434437
void EventThread();

lldb/tools/lldb-dap/lldb-dap.cpp

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -115,48 +115,6 @@ class LLDBDAPOptTable : public llvm::opt::GenericOptTable {
115115
};
116116
} // anonymous namespace
117117

118-
static void RegisterRequestCallbacks(DAP &dap) {
119-
dap.RegisterRequest<AttachRequestHandler>();
120-
dap.RegisterRequest<BreakpointLocationsRequestHandler>();
121-
dap.RegisterRequest<CancelRequestHandler>();
122-
dap.RegisterRequest<CompletionsRequestHandler>();
123-
dap.RegisterRequest<ConfigurationDoneRequestHandler>();
124-
dap.RegisterRequest<ContinueRequestHandler>();
125-
dap.RegisterRequest<DataBreakpointInfoRequestHandler>();
126-
dap.RegisterRequest<DisassembleRequestHandler>();
127-
dap.RegisterRequest<DisconnectRequestHandler>();
128-
dap.RegisterRequest<EvaluateRequestHandler>();
129-
dap.RegisterRequest<ExceptionInfoRequestHandler>();
130-
dap.RegisterRequest<InitializeRequestHandler>();
131-
dap.RegisterRequest<LaunchRequestHandler>();
132-
dap.RegisterRequest<LocationsRequestHandler>();
133-
dap.RegisterRequest<NextRequestHandler>();
134-
dap.RegisterRequest<PauseRequestHandler>();
135-
dap.RegisterRequest<ReadMemoryRequestHandler>();
136-
dap.RegisterRequest<RestartRequestHandler>();
137-
dap.RegisterRequest<ScopesRequestHandler>();
138-
dap.RegisterRequest<SetBreakpointsRequestHandler>();
139-
dap.RegisterRequest<SetDataBreakpointsRequestHandler>();
140-
dap.RegisterRequest<SetExceptionBreakpointsRequestHandler>();
141-
dap.RegisterRequest<SetFunctionBreakpointsRequestHandler>();
142-
dap.RegisterRequest<SetInstructionBreakpointsRequestHandler>();
143-
dap.RegisterRequest<SetVariableRequestHandler>();
144-
dap.RegisterRequest<SourceRequestHandler>();
145-
dap.RegisterRequest<StackTraceRequestHandler>();
146-
dap.RegisterRequest<StepInRequestHandler>();
147-
dap.RegisterRequest<StepInTargetsRequestHandler>();
148-
dap.RegisterRequest<StepOutRequestHandler>();
149-
dap.RegisterRequest<ThreadsRequestHandler>();
150-
dap.RegisterRequest<VariablesRequestHandler>();
151-
152-
// Custom requests
153-
dap.RegisterRequest<CompileUnitsRequestHandler>();
154-
dap.RegisterRequest<ModulesRequestHandler>();
155-
156-
// Testing requests
157-
dap.RegisterRequest<TestGetTargetBreakpointsRequestHandler>();
158-
}
159-
160118
static void PrintHelp(LLDBDAPOptTable &table, llvm::StringRef tool_name) {
161119
std::string usage_str = tool_name.str() + " options";
162120
table.printHelp(llvm::outs(), usage_str.c_str(), "LLDB DAP", false);
@@ -342,8 +300,6 @@ serveConnection(const Socket::SocketProtocol &protocol, const std::string &name,
342300
return;
343301
}
344302

345-
RegisterRequestCallbacks(dap);
346-
347303
{
348304
std::scoped_lock<std::mutex> lock(dap_sessions_mutex);
349305
dap_sessions[io.get()] = &dap;
@@ -597,8 +553,6 @@ int main(int argc, char *argv[]) {
597553
return EXIT_FAILURE;
598554
}
599555

600-
RegisterRequestCallbacks(dap);
601-
602556
// used only by TestVSCode_redirection_to_console.py
603557
if (getenv("LLDB_DAP_TEST_STDOUT_STDERR_REDIRECTION") != nullptr)
604558
redirection_test();

0 commit comments

Comments
 (0)