Package io.vertx.grpc.server
Class GrpcServerOptions
- java.lang.Object
-
- io.vertx.grpc.server.GrpcServerOptions
-
@Unstable public class GrpcServerOptions extends Object
Configuration for aGrpcServer.
-
-
Field Summary
Fields Modifier and Type Field Description static Set<GrpcProtocol>DEFAULT_ENABLED_PROTOCOLSThe default set of enabled protocols =[HTTP/2, TRANSCODING, WEB, WEB_TEXT]static longDEFAULT_MAX_MESSAGE_SIZEThe default maximum message size in bytes accepted from a client =256KBstatic booleanDEFAULT_PROPAGATE_DEADLINEWhether the server propagates a deadline, by default =falsestatic booleanDEFAULT_SCHEDULE_DEADLINE_AUTOMATICALLYWhether the server schedule deadline automatically when a request carrying a timeout is received, by default =false
-
Constructor Summary
Constructors Constructor Description GrpcServerOptions()Default options.GrpcServerOptions(JsonObject json)Creates options from JSON.GrpcServerOptions(GrpcServerOptions other)Copy constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description GrpcServerOptionsaddEnabledProtocol(GrpcProtocol protocol)Adds a gRPC protocol to the list of enabled protocols for the server.booleangetDeadlinePropagation()Set<GrpcProtocol>getEnabledProtocols()Retrieves the set of gRPC protocols that are currently enabled for the server.longgetMaxMessageSize()booleangetScheduleDeadlineAutomatically()booleanisProtocolEnabled(GrpcProtocol protocol)Determines if the specified gRPC protocol is enabled in the current server configuration.GrpcServerOptionsremoveEnabledProtocol(GrpcProtocol protocol)Removes the specified gRPC protocol from the set of enabled protocols.GrpcServerOptionssetDeadlinePropagation(boolean deadlinePropagation)Set whether the server propagate deadlines toio.vertx.grpc.client.GrpcClientRequest.GrpcServerOptionssetMaxMessageSize(long maxMessageSize)Set the maximum message size in bytes accepted from a client, the maximum value is0xFFFFFFFFGrpcServerOptionssetScheduleDeadlineAutomatically(boolean scheduleDeadlineAutomatically)Set whether a deadline is automatically scheduled when a request carrying a timeout is received.JsonObjecttoJson()StringtoString()
-
-
-
Field Detail
-
DEFAULT_ENABLED_PROTOCOLS
public static final Set<GrpcProtocol> DEFAULT_ENABLED_PROTOCOLS
The default set of enabled protocols =[HTTP/2, TRANSCODING, WEB, WEB_TEXT]
-
DEFAULT_SCHEDULE_DEADLINE_AUTOMATICALLY
public static final boolean DEFAULT_SCHEDULE_DEADLINE_AUTOMATICALLY
Whether the server schedule deadline automatically when a request carrying a timeout is received, by default =false- See Also:
- Constant Field Values
-
DEFAULT_PROPAGATE_DEADLINE
public static final boolean DEFAULT_PROPAGATE_DEADLINE
Whether the server propagates a deadline, by default =false- See Also:
- Constant Field Values
-
DEFAULT_MAX_MESSAGE_SIZE
public static final long DEFAULT_MAX_MESSAGE_SIZE
The default maximum message size in bytes accepted from a client =256KB- See Also:
- Constant Field Values
-
-
Constructor Detail
-
GrpcServerOptions
public GrpcServerOptions()
Default options.
-
GrpcServerOptions
public GrpcServerOptions(GrpcServerOptions other)
Copy constructor.
-
GrpcServerOptions
public GrpcServerOptions(JsonObject json)
Creates options from JSON.
-
-
Method Detail
-
isProtocolEnabled
public boolean isProtocolEnabled(GrpcProtocol protocol)
Determines if the specified gRPC protocol is enabled in the current server configuration.- Parameters:
protocol- the gRPC protocol to check- Returns:
- true if the protocol is enabled; false otherwise
-
addEnabledProtocol
public GrpcServerOptions addEnabledProtocol(GrpcProtocol protocol)
Adds a gRPC protocol to the list of enabled protocols for the server.- Parameters:
protocol- the gRPC protocol to enable- Returns:
- a reference to this GrpcServerOptions instance, allowing method chaining
-
removeEnabledProtocol
public GrpcServerOptions removeEnabledProtocol(GrpcProtocol protocol)
Removes the specified gRPC protocol from the set of enabled protocols.- Parameters:
protocol- the gRPC protocol to be removed- Returns:
- a reference to this, so the API can be used fluently
-
getEnabledProtocols
public Set<GrpcProtocol> getEnabledProtocols()
Retrieves the set of gRPC protocols that are currently enabled for the server.- Returns:
- a set of enabled gRPC protocols defined by
GrpcProtocol
-
getScheduleDeadlineAutomatically
public boolean getScheduleDeadlineAutomatically()
- Returns:
- whether the server will automatically schedule a deadline when a request carrying a timeout is received.
-
setScheduleDeadlineAutomatically
public GrpcServerOptions setScheduleDeadlineAutomatically(boolean scheduleDeadlineAutomatically)
Set whether a deadline is automatically scheduled when a request carrying a timeout is received.
- When a deadline is automatically scheduled and a request carrying a timeout is received, a deadline (timer)
will be created to cancel the request when the response has not been timely sent. The deadline can be obtained
with
GrpcServerRequest.deadline(). - When the deadline is not set and a request carrying a timeout is received, the timeout is available with
GrpcServerRequest.timeout()and it is the responsibility of the service to eventually cancel the request. Note: the client might cancel the request as well when its local deadline is met.
- Parameters:
scheduleDeadlineAutomatically- whether to schedule a deadline automatically- Returns:
- a reference to this, so the API can be used fluently
- When a deadline is automatically scheduled and a request carrying a timeout is received, a deadline (timer)
will be created to cancel the request when the response has not been timely sent. The deadline can be obtained
with
-
getDeadlinePropagation
public boolean getDeadlinePropagation()
- Returns:
- whether the server propagate deadlines to
io.vertx.grpc.client.GrpcClientRequest.
-
setDeadlinePropagation
public GrpcServerOptions setDeadlinePropagation(boolean deadlinePropagation)
Set whether the server propagate deadlines toio.vertx.grpc.client.GrpcClientRequest.- Parameters:
deadlinePropagation- the propagation setting- Returns:
- a reference to this, so the API can be used fluently
-
getMaxMessageSize
public long getMaxMessageSize()
- Returns:
- the maximum message size in bytes accepted by the server
-
setMaxMessageSize
public GrpcServerOptions setMaxMessageSize(long maxMessageSize)
Set the maximum message size in bytes accepted from a client, the maximum value is0xFFFFFFFF- Parameters:
maxMessageSize- the size- Returns:
- a reference to this, so the API can be used fluently
-
toJson
public JsonObject toJson()
- Returns:
- a JSON representation of options
-
-