SocketPair.cpp 665 B

1234567891011121314151617181920212223242526
  1. /*
  2. * Copyright (c) 2024, Andrew Kaster <akaster@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <LibIPC/Decoder.h>
  7. #include <LibIPC/Encoder.h>
  8. #include <LibWebView/SocketPair.h>
  9. template<>
  10. ErrorOr<void> IPC::encode(Encoder& encoder, WebView::SocketPair const& pair)
  11. {
  12. TRY(encoder.encode(pair.socket));
  13. TRY(encoder.encode(pair.fd_passing_socket));
  14. return {};
  15. }
  16. template<>
  17. ErrorOr<WebView::SocketPair> IPC::decode(Decoder& decoder)
  18. {
  19. auto socket = TRY(decoder.decode<IPC::File>());
  20. auto fd_passing_socket = TRY(decoder.decode<IPC::File>());
  21. return WebView::SocketPair { move(socket), move(fd_passing_socket) };
  22. }