GRPC C++  1.39.1
channel_stack_builder.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2016 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_LIB_CHANNEL_CHANNEL_STACK_BUILDER_H
20 #define GRPC_CORE_LIB_CHANNEL_CHANNEL_STACK_BUILDER_H
21 
23 
24 #include <stdbool.h>
25 
28 
34 
37 
40  const char* name);
41 
44  const char* target);
45 
48 
52 
56 
60 
64 
68 
72 
77 
82 
86 
90 
94 
98 
102 
106  grpc_channel_stack_builder* builder, const char* filter_name);
107 
109  grpc_channel_stack* channel_stack, grpc_channel_element* elem, void* arg);
110 
116  const grpc_channel_filter* filter,
117  grpc_post_filter_create_init_func post_init_func,
118  void* user_data) GRPC_MUST_USE_RESULT;
119 
125  const grpc_channel_filter* filter,
126  grpc_post_filter_create_init_func post_init_func,
127  void* user_data) GRPC_MUST_USE_RESULT;
128 
134  grpc_post_filter_create_init_func post_init_func,
135  void* user_data) GRPC_MUST_USE_RESULT;
136 
142  grpc_post_filter_create_init_func post_init_func,
143  void* user_data) GRPC_MUST_USE_RESULT;
144 
148  grpc_channel_stack_builder* builder, const char* filter_name);
149 
153 
160  grpc_channel_stack_builder* builder, size_t prefix_bytes, int initial_refs,
161  grpc_iomgr_cb_func destroy, void* destroy_arg, void** result);
162 
165 
166 #endif /* GRPC_CORE_LIB_CHANNEL_CHANNEL_STACK_BUILDER_H */
bool grpc_channel_stack_builder_move_next(grpc_channel_stack_builder_iterator *iterator)
Move an iterator to the next item.
Definition: channel_stack_builder.cc:116
void grpc_channel_stack_builder_destroy(grpc_channel_stack_builder *builder)
Destroy the builder without creating a channel stack.
Definition: channel_stack_builder.cc:256
void(* grpc_post_filter_create_init_func)(grpc_channel_stack *channel_stack, grpc_channel_element *elem, void *arg)
Definition: channel_stack_builder.h:108
const grpc_channel_args * grpc_channel_stack_builder_get_channel_arguments(grpc_channel_stack_builder *builder)
Return a borrowed pointer to the channel arguments.
Definition: channel_stack_builder.cc:161
grpc_channel_stack_builder_iterator * grpc_channel_stack_builder_create_iterator_at_last(grpc_channel_stack_builder *builder)
Begin iterating over already defined filters in the builder at the end.
Definition: channel_stack_builder.cc:100
void grpc_channel_stack_builder_set_name(grpc_channel_stack_builder *builder, const char *name)
Assign a name to the channel stack: name must be statically allocated.
Definition: channel_stack_builder.cc:147
void grpc_channel_stack_builder_set_resource_user(grpc_channel_stack_builder *builder, grpc_resource_user *resource_user)
Attach resource_user to the builder (does not take ownership)
Definition: channel_stack_builder.cc:177
const char * grpc_channel_stack_builder_iterator_filter_name(grpc_channel_stack_builder_iterator *iterator)
What is the name of the filter at this iterator position?
Definition: channel_stack_builder.cc:110
void grpc_channel_stack_builder_set_channel_arguments(grpc_channel_stack_builder *builder, const grpc_channel_args *args)
Set channel arguments: copies args.
Definition: channel_stack_builder.cc:153
grpc_resource_user * grpc_channel_stack_builder_get_resource_user(grpc_channel_stack_builder *builder)
Fetch attached resource user.
Definition: channel_stack_builder.cc:183
grpc_channel_stack_builder_iterator * grpc_channel_stack_builder_create_iterator_at_first(grpc_channel_stack_builder *builder)
Begin iterating over already defined filters in the builder at the beginning.
Definition: channel_stack_builder.cc:94
void grpc_channel_stack_builder_set_target(grpc_channel_stack_builder *b, const char *target)
Set the target uri.
Definition: channel_stack_builder.cc:67
void grpc_channel_stack_builder_iterator_destroy(grpc_channel_stack_builder_iterator *iterator)
Terminate iteration and destroy iterator.
Definition: channel_stack_builder.cc:88
bool grpc_channel_stack_builder_add_filter_before(grpc_channel_stack_builder_iterator *iterator, const grpc_channel_filter *filter, grpc_post_filter_create_init_func post_init_func, void *user_data) GRPC_MUST_USE_RESULT
Add filter to the stack, before iterator.
Definition: channel_stack_builder.cc:238
bool grpc_channel_stack_builder_iterator_is_first(grpc_channel_stack_builder_iterator *iterator)
Is an iterator at the first element?
bool grpc_channel_stack_builder_move_prev(grpc_channel_stack_builder_iterator *iterator)
Move an iterator to the previous item.
Definition: channel_stack_builder.cc:123
grpc_transport * grpc_channel_stack_builder_get_transport(grpc_channel_stack_builder *builder)
Fetch attached transport.
Definition: channel_stack_builder.cc:172
void grpc_channel_stack_builder_set_transport(grpc_channel_stack_builder *builder, grpc_transport *transport)
Attach transport to the builder (does not take ownership)
Definition: channel_stack_builder.cc:166
bool grpc_channel_stack_builder_remove_filter(grpc_channel_stack_builder *builder, const char *filter_name)
Remove any filter whose name is filter_name from builder.
Definition: channel_stack_builder.cc:199
grpc_channel_stack_builder_iterator * grpc_channel_stack_builder_iterator_find(grpc_channel_stack_builder *builder, const char *filter_name)
Return an iterator at filter_name, or at the end of the list if not found.
Definition: channel_stack_builder.cc:130
bool grpc_channel_stack_builder_iterator_is_end(grpc_channel_stack_builder_iterator *iterator)
Is an iterator at the end?
Definition: channel_stack_builder.cc:105
bool grpc_channel_stack_builder_add_filter_after(grpc_channel_stack_builder_iterator *iterator, const grpc_channel_filter *filter, grpc_post_filter_create_init_func post_init_func, void *user_data) GRPC_MUST_USE_RESULT
Add filter to the stack, after iterator.
Definition: channel_stack_builder.cc:247
grpc_error_handle grpc_channel_stack_builder_finish(grpc_channel_stack_builder *builder, size_t prefix_bytes, int initial_refs, grpc_iomgr_cb_func destroy, void *destroy_arg, void **result)
Destroy the builder, return the freshly minted channel stack in result.
Definition: channel_stack_builder.cc:270
bool grpc_channel_stack_builder_append_filter(grpc_channel_stack_builder *builder, const grpc_channel_filter *filter, grpc_post_filter_create_init_func post_init_func, void *user_data) GRPC_MUST_USE_RESULT
Add filter to the end of the filter list.
Definition: channel_stack_builder.cc:188
bool grpc_channel_stack_builder_prepend_filter(grpc_channel_stack_builder *builder, const grpc_channel_filter *filter, grpc_post_filter_create_init_func post_init_func, void *user_data) GRPC_MUST_USE_RESULT
Add filter to the beginning of the filter list.
Definition: channel_stack_builder.cc:214
grpc_channel_stack_builder * grpc_channel_stack_builder_create(void)
Create a new channel stack builder.
Definition: channel_stack_builder.cc:53
const char * grpc_channel_stack_builder_get_target(grpc_channel_stack_builder *b)
Definition: channel_stack_builder.cc:73
void(* grpc_iomgr_cb_func)(void *arg, grpc_error_handle error)
gRPC Callback definition.
Definition: closure.h:53
#define GRPC_MUST_USE_RESULT
Definition: port_platform.h:524
An array of arguments that can be passed around.
Definition: grpc_types.h:132
Definition: channel_stack.h:166
Definition: channel_stack.h:107
Definition: channel_stack_builder.cc:48
grpc_channel_stack_builder * builder
Definition: channel_stack_builder.cc:49
Definition: channel_stack_builder.cc:36
Definition: channel_stack.h:182
Definition: error_internal.h:41
Definition: resource_quota.cc:65
Definition: transport_impl.h:66