| // Copyright 2019 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef V8_TORQUE_LS_MESSAGE_HANDLER_H_ |
| #define V8_TORQUE_LS_MESSAGE_HANDLER_H_ |
| |
| #include "src/base/macros.h" |
| #include "src/torque/ls/json.h" |
| #include "src/torque/source-positions.h" |
| #include "src/torque/torque-compiler.h" |
| |
| namespace v8 { |
| namespace internal { |
| namespace torque { |
| |
| // A list of source Ids for which the LS provided diagnostic information |
| // after the last compile. The LS is responsible for syncing diagnostic |
| // information with the client. Before updated information can be sent, |
| // old diagnostic messages have to be reset. |
| DECLARE_CONTEXTUAL_VARIABLE(DiagnosticsFiles, std::vector<SourceId>); |
| |
| namespace ls { |
| |
| // The message handler might send responses or follow up requests. |
| // To allow unit testing, the "sending" function is configurable. |
| using MessageWriter = std::function<void(JsonValue)>; |
| |
| V8_EXPORT_PRIVATE void HandleMessage(JsonValue raw_message, MessageWriter); |
| |
| // Called when a compilation run finishes. Exposed for testability. |
| V8_EXPORT_PRIVATE void CompilationFinished(TorqueCompilerResult result, |
| MessageWriter); |
| |
| } // namespace ls |
| } // namespace torque |
| } // namespace internal |
| } // namespace v8 |
| |
| #endif // V8_TORQUE_LS_MESSAGE_HANDLER_H_ |