68 typename TGrpcServerBuilder,
69 typename TGrpcServerCredentials,
70 typename TGrpcCompressionAlgorithm,
71 typename TGrpcCompressionLevel
105template <
typename TParams,
typename Traits>
142 if (
params_.health_check_builder.fptr) {
143 params_.health_check_builder.fptr(
true);
146 if (
params_.reflection_builder.fptr) {
147 params_.reflection_builder.fptr();
165 TEC_ENTER(
"GrpcServer::set_builder_options");
168 if (
params_.max_message_size > 0) {
169 const int max_size =
params_.max_message_size * 1024 * 1024;
170 builder.SetMaxReceiveMessageSize(max_size);
171 builder.SetMaxSendMessageSize(max_size);
177 if (
params_.compression_algorithm > 0) {
180 TEC_TRACE(
"CompressionAlgorithm is set to {}.",
params_.compression_algorithm);
183 if (
params_.compression_level > 0) {
202 std::is_base_of<GrpcServerParams, Params>::value,
203 "Must derive from tec::GrpcServerParams class");
255 builder.RegisterService(&service);
259 server_ = builder.BuildAndStart();
261 auto errmsg =
format(
"gRPC Server cannot start on \"{}\"",
params_.addr_uri);
288 TEC_TRACE(
"terminating gRPC server ...");
Abstract base class defining the actor lifecycle and request handling interface.
Definition tec_actor.hpp:63
Base class for actor-style gRPC servers.
Definition tec_grpc_server.hpp:106
void start(Signal *sig_started, Status *status) override
Starts the gRPC server and begins listening.
Definition tec_grpc_server.hpp:237
GrpcServer(const Params ¶ms, const std::shared_ptr< Credentials > &credentials)
Constructs a GrpcServer instance.
Definition tec_grpc_server.hpp:196
virtual void set_builder_options(Builder &builder)
Configures server-wide options on the ServerBuilder.
Definition tec_grpc_server.hpp:164
Params params_
Runtime configuration parameters (listen address, message size, compression, plugins…)
Definition tec_grpc_server.hpp:120
virtual ~GrpcServer()=default
Virtual destructor (defaulted)
TParams Params
Configuration parameters type.
Definition tec_grpc_server.hpp:108
Traits::CompressionAlgorithm CompressionAlgorithm
compression algorithm enum
Definition tec_grpc_server.hpp:113
virtual void set_plugins()
Configures optional gRPC server plugins (reflection, health checking).
Definition tec_grpc_server.hpp:139
Traits::RpcServer RpcServer
running server instance type
Definition tec_grpc_server.hpp:110
void shutdown(Signal *sig_stopped) override
Initiates graceful shutdown of the server.
Definition tec_grpc_server.hpp:284
Traits::Credentials Credentials
server credentials type
Definition tec_grpc_server.hpp:112
std::shared_ptr< Credentials > credentials_
Server-side credentials (insecure / SSL / custom)
Definition tec_grpc_server.hpp:126
Status process_request(Request, Reply) override
Synchronous request processor (optional override).
Definition tec_grpc_server.hpp:219
Traits::Builder Builder
server builder type
Definition tec_grpc_server.hpp:111
std::unique_ptr< RpcServer > server_
Owned server instance — created and started during start()
Definition tec_grpc_server.hpp:123
Traits::Service Service
gRPC service type
Definition tec_grpc_server.hpp:109
Traits::CompressionLevel CompressionLevel
compression level enum
Definition tec_grpc_server.hpp:114
A thread-safe signal mechanism for inter-thread synchronization.
Definition tec_signal.hpp:44
void set()
Sets the signal to the signaled state and notifies all waiting threads.
Definition tec_signal.hpp:72
#define TEC_ENTER(name)
Logs an entry message for a named context (e.g., function).
Definition tec_trace.hpp:211
#define TEC_TRACE(...)
Logs a formatted trace message.
Definition tec_trace.hpp:222
@ NetErr
Network-related error.
@ NotImplemented
Not implemented.
Helper struct to signal termination on exit.
Definition tec_signal.hpp:110
Type traits / type aliases collection for configuring a gRPC server.
Definition tec_grpc_server.hpp:73
TGrpcServerBuilder Builder
server builder type
Definition tec_grpc_server.hpp:76
TGrpcServerCredentials Credentials
server-side credentials type
Definition tec_grpc_server.hpp:77
TGrpcCompressionLevel CompressionLevel
compression level enum
Definition tec_grpc_server.hpp:79
TService Service
gRPC service implementation type
Definition tec_grpc_server.hpp:74
TGrpcServer RpcServer
running gRPC server instance type
Definition tec_grpc_server.hpp:75
TGrpcCompressionAlgorithm CompressionAlgorithm
supported compression algorithms enum
Definition tec_grpc_server.hpp:78
Core interface for TEC actors with lifecycle management and request processing.
Common definitions and utilities for the tec namespace.
std::any Reply
Type alias for a reply object that can hold any object.
Definition tec_message.hpp:55
std::any Request
Type alias for a request object that can hold any object.
Definition tec_message.hpp:49
std::string format(const T &arg)
Formats a single argument into a string.
Definition tec_print.hpp:171
Defines a thread-safe signal implementation using mutex and condition variable.
Provides a thread-safe tracing utility for debugging in the tec namespace.
Provides time-related utilities and system information functions for the tec namespace.