sync_socket_nacl.cc 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. // Copyright (c) 2012 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 "base/sync_socket.h"
  5. #include <errno.h>
  6. #include <limits.h>
  7. #include <stddef.h>
  8. #include <stdio.h>
  9. #include <sys/types.h>
  10. #include "base/notreached.h"
  11. namespace base {
  12. // static
  13. bool SyncSocket::CreatePair(SyncSocket* socket_a, SyncSocket* socket_b) {
  14. return false;
  15. }
  16. void SyncSocket::Close() {
  17. handle_.reset();
  18. }
  19. size_t SyncSocket::Send(const void* buffer, size_t length) {
  20. const ssize_t bytes_written = write(handle(), buffer, length);
  21. return bytes_written > 0 ? static_cast<size_t>(bytes_written) : 0;
  22. }
  23. size_t SyncSocket::Receive(void* buffer, size_t length) {
  24. const ssize_t bytes_read = read(handle(), buffer, length);
  25. return bytes_read > 0 ? static_cast<size_t>(bytes_read) : 0;
  26. }
  27. size_t SyncSocket::ReceiveWithTimeout(void* buffer, size_t length, TimeDelta) {
  28. NOTIMPLEMENTED();
  29. return 0;
  30. }
  31. size_t SyncSocket::Peek() {
  32. NOTIMPLEMENTED();
  33. return 0;
  34. }
  35. bool SyncSocket::IsValid() const {
  36. return handle_.is_valid();
  37. }
  38. SyncSocket::Handle SyncSocket::handle() const {
  39. return handle_.get();
  40. }
  41. SyncSocket::Handle SyncSocket::Release() {
  42. return handle_.release();
  43. }
  44. size_t CancelableSyncSocket::Send(const void* buffer, size_t length) {
  45. return SyncSocket::Send(buffer, length);
  46. }
  47. bool CancelableSyncSocket::Shutdown() {
  48. Close();
  49. return true;
  50. }
  51. // static
  52. bool CancelableSyncSocket::CreatePair(CancelableSyncSocket* socket_a,
  53. CancelableSyncSocket* socket_b) {
  54. return SyncSocket::CreatePair(socket_a, socket_b);
  55. }
  56. } // namespace base