Interface ObjectService.Bidirectional
- All Superinterfaces:
AutoCloseable
,Closeable
,HasExportId
,HasPathId
,HasTicketId
,HasTypedTicket
,ServerObject
- All Known Implementing Classes:
CustomObject
- Enclosing interface:
- ObjectService
-
Method Summary
Modifier and TypeMethodDescriptionconnect
(ObjectService.MessageStream<ServerData> receiveStream) Initiates a connection for a bidirectional message stream forthis
.type()
The type.Methods inherited from interface io.deephaven.client.impl.HasExportId
exportId
Methods inherited from interface io.deephaven.client.impl.HasTicketId
ticketId
Methods inherited from interface io.deephaven.client.impl.HasTypedTicket
typedTicket
Methods inherited from interface io.deephaven.client.impl.ServerObject
close, release
-
Method Details
-
type
String type()The type.- Returns:
- the type
-
connect
ObjectService.MessageStream<ClientData> connect(ObjectService.MessageStream<ServerData> receiveStream) Initiates a connection for a bidirectional message stream forthis
. The returnedServerData
messages are managed separately fromthis
.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:
-