| // Copyright 2026 The Chromium Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef GPU_COMMAND_BUFFER_SERVICE_DAWN_WIRE_SERVER_H_ | |
| #define GPU_COMMAND_BUFFER_SERVICE_DAWN_WIRE_SERVER_H_ | |
| #include <memory> | |
| #include "base/containers/span.h" | |
| #include "third_party/dawn/include/dawn/wire/WireServer.h" | |
| namespace gpu::webgpu { | |
| class DawnWireServer : public dawn::wire::WireServer { | |
| public: | |
| static std::unique_ptr<DawnWireServer> Create( | |
| dawn::wire::CommandSerializer* serializer, | |
| dawn::wire::server::MemoryTransferService* memory_transfer_service, | |
| const DawnProcTable& procs); | |
| bool HandleCommands(base::span<const volatile uint8_t> commands); | |
| private: | |
| // Hide the std::span versions of the API from the base class to prevent it | |
| // from being used directly in Chromium. | |
| using dawn::wire::WireServer::HandleCommands; | |
| using dawn::wire::WireServer::WireServer; | |
| }; | |
| } // namespace gpu::webgpu | |
| #endif // GPU_COMMAND_BUFFER_SERVICE_DAWN_WIRE_SERVER_H_ |