Apache2
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
h2_conn_io.h
Go to the documentation of this file.
1 /* Copyright 2015 greenbytes GmbH (https://www.greenbytes.de)
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8 
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef __mod_h2__h2_conn_io__
17 #define __mod_h2__h2_conn_io__
18 
19 struct h2_config;
20 struct h2_session;
21 
22 /* h2_io is the basic handler of a httpd connection. It keeps two brigades,
23  * one for input, one for output and works with the installed connection
24  * filters.
25  * The read is done via a callback function, so that input can be processed
26  * directly without copying.
27  */
28 typedef struct {
31 
32  int is_tls;
35 
40 
43 
44  char *scratch;
47 } h2_conn_io;
48 
50  const struct h2_config *cfg);
51 
58  const char *buf,
59  size_t length);
60 
62 
68 
75 
76 #endif /* defined(__mod_h2__h2_conn_io__) */
size_t apr_size_t
Definition: apr.h:375
apr_status_t h2_conn_io_pass(h2_conn_io *io, apr_bucket_brigade *bb)
char * scratch
Definition: h2_conn_io.h:44
apr_size_t pass_threshold
Definition: h2_conn_io.h:42
apr_size_t ssize
Definition: h2_conn_io.h:45
int is_tls
Definition: h2_conn_io.h:32
Definition: h2_conn_io.h:28
Definition: apr_buckets.h:258
Definition: h2_config.h:57
Structure to store things which are per connection.
Definition: httpd.h:1110
apr_int64_t bytes_read
Definition: h2_conn_io.h:38
apr_int64_t apr_time_t
Definition: apr_time.h:45
int buffer_output
Definition: h2_conn_io.h:41
apr_bucket_brigade * bb
Definition: mod_dav.h:556
apr_int64_t bytes_written
Definition: h2_conn_io.h:39
conn_rec * c
Definition: h2_conn_io.h:29
apr_status_t h2_conn_io_init(h2_conn_io *io, conn_rec *c, const struct h2_config *cfg)
apr_int64_t warmup_size
Definition: h2_conn_io.h:34
apr_status_t h2_conn_io_write_eoc(h2_conn_io *io, struct h2_session *session)
apr_time_t cooldown_usecs
Definition: h2_conn_io.h:33
apr_size_t write_size
Definition: h2_conn_io.h:36
apr_status_t h2_conn_io_flush(h2_conn_io *io)
long apr_int64_t
Definition: apr.h:371
apr_time_t last_write
Definition: h2_conn_io.h:37
int apr_status_t
Definition: apr_errno.h:44
apr_status_t h2_conn_io_write(h2_conn_io *io, const char *buf, size_t length)
Definition: h2_session.h:76
apr_size_t slen
Definition: h2_conn_io.h:46
apr_bucket_brigade * output
Definition: h2_conn_io.h:30