Apache2
h2_c1_io.h
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  */
16 
17 #ifndef __mod_h2__h2_c1_io__
18 #define __mod_h2__h2_c1_io__
19 
20 struct h2_config;
21 struct h2_session;
22 
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 {
32 
33  int is_tls;
34  int unflushed;
37 
42 
46  unsigned int is_flushed : 1;
47  unsigned int is_passing : 1;
48 
49  char *scratch;
52 } h2_c1_io;
53 
55 
62  const char *buf,
63  size_t length);
64 
66 
68 
74 
80 
85 
90 
91 struct h2_session;
92 
100 
101 #endif /* defined(__mod_h2__h2_c1_io__) */
apr_bucket_brigade * bb
Definition: mod_dav.h:555
int apr_status_t
Definition: apr_errno.h:44
off_t apr_off_t
Definition: apr.h:396
size_t apr_size_t
Definition: apr.h:394
int64_t apr_int64_t
Definition: apr.h:386
apr_int64_t apr_time_t
Definition: apr_time.h:45
int h2_c1_io_pending(h2_c1_io *io)
apr_status_t h2_c1_io_pass(h2_c1_io *io)
apr_status_t h2_c1_io_init(h2_c1_io *io, struct h2_session *session)
apr_status_t h2_c1_io_append(h2_c1_io *io, apr_bucket_brigade *bb)
apr_status_t h2_c1_io_add_data(h2_c1_io *io, const char *buf, size_t length)
apr_status_t h2_c1_io_add(h2_c1_io *io, apr_bucket *b)
apr_status_t h2_c1_read(struct h2_session *session)
apr_status_t h2_c1_io_assure_flushed(h2_c1_io *io)
int h2_c1_io_needs_flush(h2_c1_io *io)
Definition: apr_buckets.h:263
Definition: apr_buckets.h:229
Definition: h2_c1_io.h:29
apr_size_t write_size
Definition: h2_c1_io.h:38
apr_size_t slen
Definition: h2_c1_io.h:51
apr_int64_t bytes_read
Definition: h2_c1_io.h:40
unsigned int is_passing
Definition: h2_c1_io.h:47
apr_time_t cooldown_usecs
Definition: h2_c1_io.h:35
apr_int64_t warmup_size
Definition: h2_c1_io.h:36
int unflushed
Definition: h2_c1_io.h:34
unsigned int is_flushed
Definition: h2_c1_io.h:46
char * scratch
Definition: h2_c1_io.h:49
struct h2_session * session
Definition: h2_c1_io.h:30
apr_bucket_brigade * output
Definition: h2_c1_io.h:31
apr_time_t last_write
Definition: h2_c1_io.h:39
apr_int64_t bytes_written
Definition: h2_c1_io.h:41
apr_off_t flush_threshold
Definition: h2_c1_io.h:45
int buffer_output
Definition: h2_c1_io.h:43
int is_tls
Definition: h2_c1_io.h:33
apr_size_t ssize
Definition: h2_c1_io.h:50
apr_off_t buffered_len
Definition: h2_c1_io.h:44
Definition: h2_session.h:64
h2_c1_io io
Definition: h2_session.h:75