All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Go to the documentation of this file.
1 /* Licensed to the Apache Software Foundation (ASF) under one or more
2  * contributor license agreements. See the NOTICE file distributed with
3  * this work for additional information regarding copyright ownership.
4  * The ASF licenses this file to You under the Apache License, Version 2.0
5  * (the "License"); you may not use this file except in compliance with
6  * the License. You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
17 #ifndef __mod_h2__h2_conn_io__
18 #define __mod_h2__h2_conn_io__
20 struct h2_config;
21 struct h2_session;
23 /* h2_io is the basic handler of a httpd connection. It keeps two brigades,
24  * one for input, one for output and works with the installed connection
25  * filters.
26  * The read is done via a callback function, so that input can be processed
27  * directly without copying.
28  */
29 typedef struct {
33  int is_tls;
44  unsigned int is_flushed : 1;
46  char *scratch;
49 } h2_conn_io;
52  const struct h2_config *cfg);
60  const char *buf,
61  size_t length);
77 #endif /* defined(__mod_h2__h2_conn_io__) */
size_t apr_size_t
Definition: apr.h:375
apr_size_t flush_threshold
Definition: h2_conn_io.h:43
apr_status_t h2_conn_io_pass(h2_conn_io *io, apr_bucket_brigade *bb)
char * scratch
Definition: h2_conn_io.h:46
apr_size_t ssize
Definition: h2_conn_io.h:47
int is_tls
Definition: h2_conn_io.h:33
Definition: h2_conn_io.h:29
Definition: apr_buckets.h:258
Definition: h2_config.h:57
int h2_conn_io_needs_flush(h2_conn_io *io)
Structure to store things which are per connection.
Definition: httpd.h:1116
apr_int64_t bytes_read
Definition: h2_conn_io.h:39
apr_int64_t apr_time_t
Definition: apr_time.h:45
int buffer_output
Definition: h2_conn_io.h:42
apr_bucket_brigade * bb
Definition: mod_dav.h:552
apr_int64_t bytes_written
Definition: h2_conn_io.h:40
conn_rec * c
Definition: h2_conn_io.h:30
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:35
apr_time_t cooldown_usecs
Definition: h2_conn_io.h:34
apr_size_t write_size
Definition: h2_conn_io.h:37
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:38
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:75
apr_size_t slen
Definition: h2_conn_io.h:48
apr_bucket_brigade * output
Definition: h2_conn_io.h:31