native_handle_type_converters.cc 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // Copyright 2017 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "ipc/native_handle_type_converters.h"
  5. namespace mojo {
  6. // static
  7. IPC::MessageAttachment::Type TypeConverter<
  8. IPC::MessageAttachment::Type,
  9. native::SerializedHandleType>::Convert(native::SerializedHandleType type) {
  10. switch (type) {
  11. case native::SerializedHandleType::MOJO_HANDLE:
  12. return IPC::MessageAttachment::Type::MOJO_HANDLE;
  13. case native::SerializedHandleType::PLATFORM_FILE:
  14. return IPC::MessageAttachment::Type::PLATFORM_FILE;
  15. case native::SerializedHandleType::WIN_HANDLE:
  16. return IPC::MessageAttachment::Type::WIN_HANDLE;
  17. case native::SerializedHandleType::MACH_PORT:
  18. return IPC::MessageAttachment::Type::MACH_PORT;
  19. case native::SerializedHandleType::FUCHSIA_HANDLE:
  20. return IPC::MessageAttachment::Type::FUCHSIA_HANDLE;
  21. }
  22. NOTREACHED();
  23. return IPC::MessageAttachment::Type::MOJO_HANDLE;
  24. }
  25. // static
  26. native::SerializedHandleType TypeConverter<
  27. native::SerializedHandleType,
  28. IPC::MessageAttachment::Type>::Convert(IPC::MessageAttachment::Type type) {
  29. switch (type) {
  30. case IPC::MessageAttachment::Type::MOJO_HANDLE:
  31. return native::SerializedHandleType::MOJO_HANDLE;
  32. case IPC::MessageAttachment::Type::PLATFORM_FILE:
  33. return native::SerializedHandleType::PLATFORM_FILE;
  34. case IPC::MessageAttachment::Type::WIN_HANDLE:
  35. return native::SerializedHandleType::WIN_HANDLE;
  36. case IPC::MessageAttachment::Type::MACH_PORT:
  37. return native::SerializedHandleType::MACH_PORT;
  38. case IPC::MessageAttachment::Type::FUCHSIA_HANDLE:
  39. return native::SerializedHandleType::FUCHSIA_HANDLE;
  40. }
  41. NOTREACHED();
  42. return native::SerializedHandleType::MOJO_HANDLE;
  43. }
  44. } // namespace mojo