GRPC Core 0.10.0.0

- Main Page
- Data Structures
- Files

- File List
- Globals

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
frame_goaway.h
Go to the documentation of this file.
1 /*
2 *
3 * Copyright 2015, Google Inc.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met:
9 *
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * * Redistributions in binary form must reproduce the above
13 * copyright notice, this list of conditions and the following disclaimer
14 * in the documentation and/or other materials provided with the
15 * distribution.
16 * * Neither the name of Google Inc. nor the names of its
17 * contributors may be used to endorse or promote products derived from
18 * this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 */
33
34 #ifndef GRPC_INTERNAL_CORE_TRANSPORT_CHTTP2_FRAME_GOAWAY_H
35 #define GRPC_INTERNAL_CORE_TRANSPORT_CHTTP2_FRAME_GOAWAY_H
36
37 #include "src/core/transport/chttp2/frame.h"
38 #include <grpc/support/port_platform.h>
39 #include <grpc/support/slice.h>
40 #include <grpc/support/slice_buffer.h>
41
42 typedef enum {
43 GRPC_CHTTP2_GOAWAY_LSI0,
44 GRPC_CHTTP2_GOAWAY_LSI1,
45 GRPC_CHTTP2_GOAWAY_LSI2,
46 GRPC_CHTTP2_GOAWAY_LSI3,
47 GRPC_CHTTP2_GOAWAY_ERR0,
48 GRPC_CHTTP2_GOAWAY_ERR1,
49 GRPC_CHTTP2_GOAWAY_ERR2,
50 GRPC_CHTTP2_GOAWAY_ERR3,
51 GRPC_CHTTP2_GOAWAY_DEBUG
52 } grpc_chttp2_goaway_parse_state;
53
54 typedef struct {
55 grpc_chttp2_goaway_parse_state state;
56 gpr_uint32 last_stream_id;
57 gpr_uint32 error_code;
58 char *debug_data;
59 gpr_uint32 debug_length;
60 gpr_uint32 debug_pos;
61 } grpc_chttp2_goaway_parser;
62
63 void grpc_chttp2_goaway_parser_init(grpc_chttp2_goaway_parser *p);
64 void grpc_chttp2_goaway_parser_destroy(grpc_chttp2_goaway_parser *p);
65 grpc_chttp2_parse_error grpc_chttp2_goaway_parser_begin_frame(
66 grpc_chttp2_goaway_parser *parser, gpr_uint32 length, gpr_uint8 flags);
67 grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(
68 void *parser, grpc_chttp2_transport_parsing *transport_parsing,
69 grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last);
70
71 void grpc_chttp2_goaway_append(gpr_uint32 last_stream_id, gpr_uint32 error_code,
72 gpr_slice debug_data,
73 gpr_slice_buffer *slice_buffer);
74
75 #endif /* GRPC_INTERNAL_CORE_TRANSPORT_CHTTP2_FRAME_GOAWAY_H */
grpc_chttp2_goaway_parser::last_stream_id
gpr_uint32 last_stream_id
Definition: frame_goaway.h:56
port_platform.h
GRPC_CHTTP2_GOAWAY_ERR3
Definition: frame_goaway.h:50
gpr_uint8
uint8_t gpr_uint8
Definition: port_platform.h:307
GRPC_CHTTP2_GOAWAY_LSI0
Definition: frame_goaway.h:43
GRPC_CHTTP2_GOAWAY_DEBUG
Definition: frame_goaway.h:51
GRPC_CHTTP2_GOAWAY_LSI1
Definition: frame_goaway.h:44
grpc_chttp2_parse_error
grpc_chttp2_parse_error
Definition: frame.h:42
grpc_chttp2_goaway_parser_destroy
void grpc_chttp2_goaway_parser_destroy(grpc_chttp2_goaway_parser *p)
Definition: frame_goaway.c:46
gpr_uint32
uint32_t gpr_uint32
Definition: port_platform.h:309
GRPC_CHTTP2_GOAWAY_ERR1
Definition: frame_goaway.h:48
gpr_slice_buffer
Definition: slice_buffer.h:48
GRPC_CHTTP2_GOAWAY_ERR0
Definition: frame_goaway.h:47
grpc_chttp2_goaway_parser::debug_length
gpr_uint32 debug_length
Definition: frame_goaway.h:59
grpc_chttp2_goaway_parser::state
grpc_chttp2_goaway_parse_state state
Definition: frame_goaway.h:55
frame.h
grpc_chttp2_goaway_parser
Definition: frame_goaway.h:54
grpc_chttp2_goaway_parser::error_code
gpr_uint32 error_code
Definition: frame_goaway.h:57
grpc_chttp2_transport_parsing
Definition: internal.h:215
GRPC_CHTTP2_GOAWAY_ERR2
Definition: frame_goaway.h:49
GRPC_CHTTP2_GOAWAY_LSI3
Definition: frame_goaway.h:46
slice_buffer.h
grpc_chttp2_goaway_parser::debug_data
char * debug_data
Definition: frame_goaway.h:58
grpc_chttp2_stream_parsing
Definition: internal.h:412
grpc_chttp2_goaway_parser_parse
grpc_chttp2_parse_error grpc_chttp2_goaway_parser_parse(void *parser, grpc_chttp2_transport_parsing *transport_parsing, grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last)
Definition: frame_goaway.c:65
grpc_chttp2_goaway_parser_init
void grpc_chttp2_goaway_parser_init(grpc_chttp2_goaway_parser *p)
Definition: frame_goaway.c:42
slice.h
grpc_chttp2_goaway_parser::debug_pos
gpr_uint32 debug_pos
Definition: frame_goaway.h:60
grpc_chttp2_goaway_append
void grpc_chttp2_goaway_append(gpr_uint32 last_stream_id, gpr_uint32 error_code, gpr_slice debug_data, gpr_slice_buffer *slice_buffer)
Definition: frame_goaway.c:158
gpr_slice
Definition: slice.h:79
grpc_chttp2_goaway_parse_state
grpc_chttp2_goaway_parse_state
Definition: frame_goaway.h:42
GRPC_CHTTP2_GOAWAY_LSI2
Definition: frame_goaway.h:45
grpc_chttp2_goaway_parser_begin_frame
grpc_chttp2_parse_error grpc_chttp2_goaway_parser_begin_frame(grpc_chttp2_goaway_parser *parser, gpr_uint32 length, gpr_uint8 flags)
Definition: frame_goaway.c:50