server_filter.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2018 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_INTERNAL_CPP_EXT_FILTERS_CENSUS_SERVER_FILTER_H
20 #define GRPC_INTERNAL_CPP_EXT_FILTERS_CENSUS_SERVER_FILTER_H
21 
23 
24 #include <stdint.h>
25 #include <string.h>
26 
27 #include <string>
28 
29 #include "absl/strings/string_view.h"
30 #include "absl/time/time.h"
31 #include "absl/types/optional.h"
32 
33 #include <grpc/grpc_security.h>
35 #include <grpcpp/support/config.h>
36 
46 
47 namespace grpc {
48 
49 // A CallData class will be created for every grpc call within a channel. It is
50 // used to store data and methods specific to that call. CensusServerCallData is
51 // thread-compatible, however typically only 1 thread should be interacting with
52 // a call at a time.
54  public:
55  // Maximum size of server stats that are sent on the wire.
56  static constexpr uint32_t kMaxServerStatsLen = 16;
57 
59  : gc_(nullptr),
60  auth_context_(nullptr),
61  recv_initial_metadata_(nullptr),
64  recv_message_(nullptr),
69  }
70 
72  const grpc_call_element_args* args) override;
73 
74  void Destroy(grpc_call_element* elem, const grpc_call_final_info* final_info,
75  grpc_closure* then_call_closure) override;
76 
78  TransportStreamOpBatch* op) override;
79 
80  static void OnDoneRecvInitialMetadataCb(void* user_data,
82 
83  static void OnDoneRecvMessageCb(void* user_data, grpc_error_handle error);
84 
85  private:
87  // server method
91  // Pointer to the grpc_call element
93  // Authorization context for the call.
95  // recv callback
99  // recv message
107  // Buffer needed for grpc_slice to reference it when adding metatdata to
108  // response.
110 };
111 
112 } // namespace grpc
113 
114 #endif /* GRPC_INTERNAL_CPP_EXT_FILTERS_CENSUS_SERVER_FILTER_H */
slice.h
grpc_auth_context
Definition: security_context.h:63
metadata_batch.h
channel_fwd.h
memset
return memset(p, 0, total)
grpc::CensusServerCallData::OnDoneRecvInitialMetadataCb
static void OnDoneRecvInitialMetadataCb(void *user_data, grpc_error_handle error)
Definition: server_filter.cc:91
absl::Time
Definition: third_party/abseil-cpp/absl/time/time.h:642
grpc
Definition: grpcpp/alarm.h:33
grpc_core::Slice
Definition: src/core/lib/slice/slice.h:282
string.h
grpc::CensusServerCallData::recv_message_count_
uint64_t recv_message_count_
Definition: server_filter.h:105
absl::string_view
Definition: abseil-cpp/absl/strings/string_view.h:167
grpc::CensusServerCallData::OnDoneRecvMessageCb
static void OnDoneRecvMessageCb(void *user_data, grpc_error_handle error)
Definition: server_filter.cc:74
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
elem
Timer elem
Definition: event_engine/iomgr_event_engine/timer_heap_test.cc:109
error
grpc_error_handle error
Definition: retry_filter.cc:499
grpc::CensusServerCallData::kMaxServerStatsLen
static constexpr uint32_t kMaxServerStatsLen
Definition: server_filter.h:56
closure.h
grpc::CensusServerCallData::Init
grpc_error_handle Init(grpc_call_element *elem, const grpc_call_element_args *args) override
Initializes the call data.
Definition: server_filter.cc:148
grpc::CensusServerCallData::initial_on_done_recv_message_
grpc_closure * initial_on_done_recv_message_
Definition: server_filter.h:100
grpc_security.h
grpc::CensusServerCallData::on_done_recv_initial_metadata_
grpc_closure on_done_recv_initial_metadata_
Definition: server_filter.h:98
grpc::CensusServerCallData::start_time_
absl::Time start_time_
Definition: server_filter.h:102
grpc_call_element
Definition: channel_stack.h:194
grpc::CensusContext
Definition: cpp/ext/filters/census/context.h:44
grpc::CensusServerCallData::method_
absl::string_view method_
Definition: server_filter.h:88
grpc_types.h
uint32_t
unsigned int uint32_t
Definition: stdint-msvc2008.h:80
grpc::CensusServerCallData::StartTransportStreamOpBatch
void StartTransportStreamOpBatch(grpc_call_element *elem, TransportStreamOpBatch *op) override
Starts a new stream operation.
Definition: server_filter.cc:115
grpc::TransportStreamOpBatch
A C++ wrapper for the grpc_transport_stream_op_batch struct.
Definition: common/channel_filter.h:99
grpc::CensusServerCallData::recv_message_
absl::optional< grpc_core::SliceBuffer > * recv_message_
Definition: server_filter.h:104
asyncio_get_stats.args
args
Definition: asyncio_get_stats.py:40
grpc::CensusServerCallData::qualified_method_
std::string qualified_method_
Definition: server_filter.h:89
channel_stack.h
grpc::CensusServerCallData::context_
CensusContext context_
Definition: server_filter.h:86
grpc_call
struct grpc_call grpc_call
Definition: grpc_types.h:70
uint64_t
unsigned __int64 uint64_t
Definition: stdint-msvc2008.h:90
grpc::CallData
Represents call data.
Definition: common/channel_filter.h:224
absl::optional< grpc_core::SliceBuffer >
grpc::CensusServerCallData::stats_buf_
char stats_buf_[kMaxServerStatsLen]
Definition: server_filter.h:109
absl::Duration
Definition: third_party/abseil-cpp/absl/time/time.h:159
error.h
grpc_call_element_args
Definition: channel_stack.h:80
config.h
stdint.h
grpc::CensusServerCallData::gc_
grpc_call * gc_
Definition: server_filter.h:92
grpc::CensusServerCallData::sent_message_count_
uint64_t sent_message_count_
Definition: server_filter.h:106
grpc::CensusServerCallData
Definition: server_filter.h:53
grpc::CensusServerCallData::initial_on_done_recv_initial_metadata_
grpc_closure * initial_on_done_recv_initial_metadata_
Definition: server_filter.h:97
grpc::CensusServerCallData::elapsed_time_
absl::Duration elapsed_time_
Definition: server_filter.h:103
grpc::CensusServerCallData::auth_context_
grpc_auth_context * auth_context_
Definition: server_filter.h:94
grpc::CensusServerCallData::CensusServerCallData
CensusServerCallData()
Definition: server_filter.h:58
grpc::CensusServerCallData::path_
grpc_core::Slice path_
Definition: server_filter.h:90
grpc::CensusServerCallData::on_done_recv_message_
grpc_closure on_done_recv_message_
Definition: server_filter.h:101
grpc_call_final_info
Definition: channel_stack.h:95
grpc_error
Definition: error_internal.h:42
grpc_metadata_batch
Definition: metadata_batch.h:1259
grpc::CensusServerCallData::recv_initial_metadata_
grpc_metadata_batch * recv_initial_metadata_
Definition: server_filter.h:96
channel_filter.h
grpc_closure
Definition: closure.h:56
op
static grpc_op * op
Definition: test/core/fling/client.cc:47
slice_buffer.h
grpc::CensusServerCallData::Destroy
void Destroy(grpc_call_element *elem, const grpc_call_final_info *final_info, grpc_closure *then_call_closure) override
Definition: server_filter.cc:162
context.h
port_platform.h


grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:11