Class GrpcServerOptions

java.lang.Object
io.vertx.grpc.server.GrpcServerOptions

@Unstable public class GrpcServerOptions extends Object
Configuration for a GrpcServer.
  • Field Details

    • 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:
    • DEFAULT_PROPAGATE_DEADLINE

      public static final boolean DEFAULT_PROPAGATE_DEADLINE
      Whether the server propagates a deadline, by default = false
      See Also:
    • 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:
  • Constructor Details

    • GrpcServerOptions

      public GrpcServerOptions()
      Default options.
    • GrpcServerOptions

      public GrpcServerOptions(GrpcServerOptions other)
      Copy constructor.
    • GrpcServerOptions

      public GrpcServerOptions(JsonObject json)
      Creates options from JSON.
  • Method Details

    • 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
    • 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 to io.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 is 0xFFFFFFFF
      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
    • toString

      public String toString()
      Overrides:
      toString in class Object