GRPC C++  1.39.1
frame_settings.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2015 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 #ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_SETTINGS_H
20 #define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_SETTINGS_H
21 
23 
24 #include <grpc/slice.h>
27 
28 typedef enum {
36 
39  uint32_t* target_settings;
40  uint8_t is_ack;
41  uint16_t id;
42  uint32_t value;
44 };
45 /* Create a settings frame by diffing old & new, and updating old to be new */
46 grpc_slice grpc_chttp2_settings_create(uint32_t* old_settings,
47  const uint32_t* new_settings,
48  uint32_t force_mask, size_t count);
49 /* Create an ack settings frame */
51 
53  grpc_chttp2_settings_parser* parser, uint32_t length, uint8_t flags,
54  uint32_t* settings);
58  const grpc_slice& slice,
59  int is_last);
60 
61 #endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_SETTINGS_H */
grpc_slice grpc_chttp2_settings_ack_create(void)
Definition: frame_settings.cc:81
grpc_error_handle grpc_chttp2_settings_parser_parse(void *parser, grpc_chttp2_transport *t, grpc_chttp2_stream *s, const grpc_slice &slice, int is_last)
Definition: frame_settings.cc:113
grpc_error_handle grpc_chttp2_settings_parser_begin_frame(grpc_chttp2_settings_parser *parser, uint32_t length, uint8_t flags, uint32_t *settings)
Definition: frame_settings.cc:87
grpc_slice grpc_chttp2_settings_create(uint32_t *old_settings, const uint32_t *new_settings, uint32_t force_mask, size_t count)
Definition: frame_settings.cc:49
grpc_chttp2_settings_parse_state
Definition: frame_settings.h:28
@ GRPC_CHTTP2_SPS_VAL0
Definition: frame_settings.h:31
@ GRPC_CHTTP2_SPS_ID0
Definition: frame_settings.h:29
@ GRPC_CHTTP2_SPS_VAL1
Definition: frame_settings.h:32
@ GRPC_CHTTP2_SPS_VAL2
Definition: frame_settings.h:33
@ GRPC_CHTTP2_SPS_ID1
Definition: frame_settings.h:30
@ GRPC_CHTTP2_SPS_VAL3
Definition: frame_settings.h:34
#define GRPC_CHTTP2_NUM_SETTINGS
Definition: http2_settings.h:39
grpc_slice slice
Definition: server.cc:461
Definition: frame_settings.h:37
uint8_t is_ack
Definition: frame_settings.h:40
uint32_t * target_settings
Definition: frame_settings.h:39
uint32_t value
Definition: frame_settings.h:42
uint16_t id
Definition: frame_settings.h:41
uint32_t incoming_settings[GRPC_CHTTP2_NUM_SETTINGS]
Definition: frame_settings.h:43
grpc_chttp2_settings_parse_state state
Definition: frame_settings.h:38
Definition: internal.h:509
Definition: internal.h:288
Definition: error_internal.h:41
A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1].
Definition: slice.h:60