| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef MEDIA_CAST_NET_UDP_TRANSPORT_H_ | 5 #ifndef MEDIA_CAST_NET_UDP_TRANSPORT_H_ |
| 6 #define MEDIA_CAST_NET_UDP_TRANSPORT_H_ | 6 #define MEDIA_CAST_NET_UDP_TRANSPORT_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 void SetDscp(net::DiffServCodePoint dscp); | 60 void SetDscp(net::DiffServCodePoint dscp); |
| 61 | 61 |
| 62 // Set UdpTransport options. | 62 // Set UdpTransport options. |
| 63 // Possible keys are: | 63 // Possible keys are: |
| 64 // "pacer_max_burst_size": int | 64 // "pacer_max_burst_size": int |
| 65 // - Specifies how many pakcets to send per 10 ms, maximum. | 65 // - Specifies how many pakcets to send per 10 ms, maximum. |
| 66 // "send_buffer_min_size": int | 66 // "send_buffer_min_size": int |
| 67 // - Specifies the minimum socket send buffer size. | 67 // - Specifies the minimum socket send buffer size. |
| 68 // "DSCP" (value ignored) | 68 // "DSCP" (value ignored) |
| 69 // - Turns DSCP on (higher IP Precedence and Type of Service). | 69 // - Turns DSCP on (higher IP Precedence and Type of Service). |
| 70 // "disable_non_blocking_io" (value ignored) | |
| 71 // - Windows only. Turns off non-blocking IO for the socket. | |
| 72 // Note: Non-blocking IO is, by default, enabled on all platforms. | |
| 73 void SetUdpOptions(const base::DictionaryValue& options); | 70 void SetUdpOptions(const base::DictionaryValue& options); |
| 74 | 71 |
| 75 // This has to be called before |StartReceiving()| to change the | 72 // This has to be called before |StartReceiving()| to change the |
| 76 // |send_buffer_size_|. Calling |SetUdpOptions()| will automatically call it. | 73 // |send_buffer_size_|. Calling |SetUdpOptions()| will automatically call it. |
| 77 void SetSendBufferSize(int32_t send_buffer_size); | 74 void SetSendBufferSize(int32_t send_buffer_size); |
| 78 | 75 |
| 79 #if defined(OS_WIN) | |
| 80 // Switch to use non-blocking IO. Must be called before StartReceiving(). | |
| 81 void UseNonBlockingIO(); | |
| 82 #endif | |
| 83 | |
| 84 // PacketTransport implementations. | 76 // PacketTransport implementations. |
| 85 bool SendPacket(PacketRef packet, const base::Closure& cb) final; | 77 bool SendPacket(PacketRef packet, const base::Closure& cb) final; |
| 86 int64_t GetBytesSent() final; | 78 int64_t GetBytesSent() final; |
| 87 | 79 |
| 88 private: | 80 private: |
| 89 // Requests and processes packets from |udp_socket_|. This method is called | 81 // Requests and processes packets from |udp_socket_|. This method is called |
| 90 // once with |length_or_status| set to net::ERR_IO_PENDING to start receiving | 82 // once with |length_or_status| set to net::ERR_IO_PENDING to start receiving |
| 91 // packets. Thereafter, it is called with some other value as the callback | 83 // packets. Thereafter, it is called with some other value as the callback |
| 92 // response from UdpSocket::RecvFrom(). | 84 // response from UdpSocket::RecvFrom(). |
| 93 void ReceiveNextPacket(int length_or_status); | 85 void ReceiveNextPacket(int length_or_status); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 119 // NOTE: Weak pointers must be invalidated before all other member variables. | 111 // NOTE: Weak pointers must be invalidated before all other member variables. |
| 120 base::WeakPtrFactory<UdpTransport> weak_factory_; | 112 base::WeakPtrFactory<UdpTransport> weak_factory_; |
| 121 | 113 |
| 122 DISALLOW_COPY_AND_ASSIGN(UdpTransport); | 114 DISALLOW_COPY_AND_ASSIGN(UdpTransport); |
| 123 }; | 115 }; |
| 124 | 116 |
| 125 } // namespace cast | 117 } // namespace cast |
| 126 } // namespace media | 118 } // namespace media |
| 127 | 119 |
| 128 #endif // MEDIA_CAST_NET_UDP_TRANSPORT_H_ | 120 #endif // MEDIA_CAST_NET_UDP_TRANSPORT_H_ |
| OLD | NEW |