Interface ObjectService.Bidirectional

All Superinterfaces:
AutoCloseable, Closeable, HasExportId, HasPathId, HasTicketId, HasTypedTicket, ServerObject
All Known Implementing Classes:
CustomObject
Enclosing interface:
ObjectService

public static interface ObjectService.Bidirectional extends ServerObject
A server object that supports a bidirectional message stream.
  • Method Details

    • type

      String type()
      The type.
      Returns:
      the type
    • connect

      Initiates a connection for a bidirectional message stream for this. The returned ServerData messages are managed separately from this.

      This provides a generic stream feature for Deephaven instances to use to add arbitrary functionality. This API lets a client open a stream to a particular object on the server, to be mediated by a server side plugin. In theory this could effectively be used to "tunnel" a custom gRPC call, but in practice there are a few deliberate shortcomings that still make this possible, but not trivial.

      Presently it is required that the server respond immediately, at least to acknowledge that the object was correctly contacted (as opposed to waiting for a pending ticket, or dealing with network lag, etc). This is a small (and possibly not required, but convenient) departure from a offering a gRPC stream (a server-streaming or bidi-streaming call need not send a message right away).

      Parameters:
      receiveStream - the stream where the client will receive messages
      Returns:
      the stream where the client will send messages
      See Also: