Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(414)

Side by Side Diff: components/cronet/ios/cronet_c_for_grpc.h

Issue 1856073002: Coalesce small buffers in net::BidirectionalStream (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix javadoc Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 COMPONENTS_CRONET_IOS_CRONET_C_FOR_GRPC_H_ 5 #ifndef COMPONENTS_CRONET_IOS_CRONET_C_FOR_GRPC_H_
6 #define COMPONENTS_CRONET_IOS_CRONET_C_FOR_GRPC_H_ 6 #define COMPONENTS_CRONET_IOS_CRONET_C_FOR_GRPC_H_
7 7
8 #ifdef __cplusplus 8 #ifdef __cplusplus
9 extern "C" { 9 extern "C" {
10 #endif 10 #endif
(...skipping 25 matching lines...) Expand all
36 36
37 /* Array of request or response headers or trailers. */ 37 /* Array of request or response headers or trailers. */
38 typedef struct cronet_bidirectional_stream_header_array { 38 typedef struct cronet_bidirectional_stream_header_array {
39 size_t count; 39 size_t count;
40 size_t capacity; 40 size_t capacity;
41 cronet_bidirectional_stream_header* headers; 41 cronet_bidirectional_stream_header* headers;
42 } cronet_bidirectional_stream_header_array; 42 } cronet_bidirectional_stream_header_array;
43 43
44 /* Set of callbacks used to receive callbacks from bidirectional stream. */ 44 /* Set of callbacks used to receive callbacks from bidirectional stream. */
45 typedef struct cronet_bidirectional_stream_callback { 45 typedef struct cronet_bidirectional_stream_callback {
46 /* Invoked when request headers are sent. Indicates that stream has initiated 46 /* Invoked when the stream is ready for reading and writing.
47 * the request. Consumer may call cronet_bidirectional_stream_write() to start 47 * Consumer may call cronet_bidirectional_stream_read() to start reading data.
48 * writing data. 48 * Consumer may call cronet_bidirectional_stream_write() to start writing
49 * data.
49 */ 50 */
50 void (*on_request_headers_sent)(cronet_bidirectional_stream* stream); 51 void (*on_stream_ready)(cronet_bidirectional_stream* stream);
51 52
52 /* Invoked when initial response headers are received. 53 /* Invoked when initial response headers are received.
53 * Consumer must call cronet_bidirectional_stream_read() to start reading. 54 * Consumer must call cronet_bidirectional_stream_read() to start reading.
54 * Consumer may call cronet_bidirectional_stream_write() to start writing or 55 * Consumer may call cronet_bidirectional_stream_write() to start writing or
55 * close the stream. Contents of |headers| is valid for duration of the call. 56 * close the stream. Contents of |headers| is valid for duration of the call.
56 */ 57 */
57 void (*on_response_headers_received)( 58 void (*on_response_headers_received)(
58 cronet_bidirectional_stream* stream, 59 cronet_bidirectional_stream* stream,
59 const cronet_bidirectional_stream_header_array* headers, 60 const cronet_bidirectional_stream_header_array* headers,
60 const char* negotiated_protocol); 61 const char* negotiated_protocol);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 int cronet_bidirectional_stream_start( 148 int cronet_bidirectional_stream_start(
148 cronet_bidirectional_stream* stream, 149 cronet_bidirectional_stream* stream,
149 const char* url, 150 const char* url,
150 int priority, 151 int priority,
151 const char* method, 152 const char* method,
152 const cronet_bidirectional_stream_header_array* headers, 153 const cronet_bidirectional_stream_header_array* headers,
153 bool end_of_stream); 154 bool end_of_stream);
154 155
155 /* Read response data into |buffer| of |capacity| length. Must only be called at 156 /* Read response data into |buffer| of |capacity| length. Must only be called at
156 * most once in response to each invocation of the 157 * most once in response to each invocation of the
157 * on_response_headers_received() and on_read_completed() methods of the 158 * on_stream_ready()/on_response_headers_received() and on_read_completed()
158 * cronet_bidirectional_stream_callback. 159 * methods of the cronet_bidirectional_stream_callback.
159 * Each call will result in an invocation of the callback's 160 * Each call will result in an invocation of the callback's
160 * on_read_completed() method if data is read, or its on_failed() method if 161 * on_read_completed() method if data is read, or its on_failed() method if
161 * there's an error. The callback's on_succeeded() method is also invoked if 162 * there's an error. The callback's on_succeeded() method is also invoked if
162 * there is no more data to read and |end_of_stream| was previously sent. 163 * there is no more data to read and |end_of_stream| was previously sent.
163 */ 164 */
164 int cronet_bidirectional_stream_read(cronet_bidirectional_stream* stream, 165 int cronet_bidirectional_stream_read(cronet_bidirectional_stream* stream,
165 char* buffer, 166 char* buffer,
166 int capacity); 167 int capacity);
167 168
168 /* Write request data from |buffer| of |buffer_length| length. Must only be 169 /* Write request data from |buffer| of |buffer_length| length. Must only be
169 * called at most once in response to each invocation of the 170 * called at most once in response to each invocation of the
170 * on_request_headers_sent() and on_write_completed() methods of the 171 * on_stream_ready() and on_write_completed() methods of the
171 * cronet_bidirectional_stream_callback. 172 * cronet_bidirectional_stream_callback.
172 * Each call will result in an invocation the callback's on_write_completed() 173 * Each call will result in an invocation the callback's on_write_completed()
173 * method if data is sent, or its on_failed() method if there's an error. 174 * method if data is sent, or its on_failed() method if there's an error.
174 * The callback's on_succeeded() method is also invoked if |end_of_stream| is 175 * The callback's on_succeeded() method is also invoked if |end_of_stream| is
175 * set and all response data has been read. 176 * set and all response data has been read.
176 */ 177 */
177 int cronet_bidirectional_stream_write(cronet_bidirectional_stream* stream, 178 int cronet_bidirectional_stream_write(cronet_bidirectional_stream* stream,
178 const char* buffer, 179 const char* buffer,
179 int buffer_length, 180 int buffer_length,
180 bool end_of_stream); 181 bool end_of_stream);
(...skipping 13 matching lines...) Expand all
194 * (succeeded, canceled, or failed). 195 * (succeeded, canceled, or failed).
195 * Returns false if the |stream| stream is not yet started or is in progress. 196 * Returns false if the |stream| stream is not yet started or is in progress.
196 */ 197 */
197 bool cronet_bidirectional_stream_is_done(cronet_bidirectional_stream* stream); 198 bool cronet_bidirectional_stream_is_done(cronet_bidirectional_stream* stream);
198 199
199 #ifdef __cplusplus 200 #ifdef __cplusplus
200 } 201 }
201 #endif 202 #endif
202 203
203 #endif // COMPONENTS_CRONET_IOS_CRONET_C_FOR_GRPC_H_ 204 #endif // COMPONENTS_CRONET_IOS_CRONET_C_FOR_GRPC_H_
OLDNEW
« no previous file with comments | « components/cronet/ios/cronet_bidirectional_stream.cc ('k') | components/cronet/ios/cronet_c_for_grpc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698