Class CustomObject
- All Implemented Interfaces:
HasExportId
,HasPathId
,HasTicketId
,HasTypedTicket
,ObjectService.Bidirectional
,ObjectService.Fetchable
,ServerObject
,Closeable
,AutoCloseable
ObjectService.Fetchable
or ObjectService.Bidirectional
. The client is responsible for
implementing the necessarily retrieval logic according to the specific type()
.-
Method Summary
Modifier and TypeMethodDescriptionfinal void
close()
Releasesthis
without waiting for the result.connect
(ObjectService.MessageStream<ServerData> receiveStream) Initiates a connection for a bidirectional message stream forthis
.final ExportId
exportId()
Get the export ID.fetch()
Fetchesthis
.final PathId
pathId()
Get the path ID.final CompletableFuture<Void>
release()
Releasesthis
.final TicketId
ticketId()
Get the ticket ID.final String
toString()
type()
The type.final TypedTicket
Get the typed ticket.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
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
Description copied from interface:ObjectService.Fetchable
The type.- Specified by:
type
in interfaceObjectService.Bidirectional
- Specified by:
type
in interfaceObjectService.Fetchable
- Returns:
- the type
-
fetch
Description copied from interface:ObjectService.Fetchable
Fetchesthis
. The resulting object is managed separately fromthis
.- Specified by:
fetch
in interfaceObjectService.Fetchable
- Returns:
- the future
- See Also:
-
connect
public ObjectService.MessageStream<ClientData> connect(ObjectService.MessageStream<ServerData> receiveStream) Description copied from interface:ObjectService.Bidirectional
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).
- Specified by:
connect
in interfaceObjectService.Bidirectional
- Parameters:
receiveStream
- the stream where the client will receive messages- Returns:
- the stream where the client will send messages
- See Also:
-
exportId
Description copied from interface:HasExportId
Get the export ID.- Specified by:
exportId
in interfaceHasExportId
- Returns:
- the export ID
-
pathId
Description copied from interface:HasPathId
Get the path ID. -
ticketId
Description copied from interface:HasTicketId
Get the ticket ID.- Specified by:
ticketId
in interfaceHasTicketId
- Returns:
- the ticket ID
-
typedTicket
Description copied from interface:HasTypedTicket
Get the typed ticket.- Specified by:
typedTicket
in interfaceHasTypedTicket
- Returns:
- the typed ticket
-
release
Description copied from interface:ServerObject
Releasesthis
. After releasing, callers should not usethis
object norHasExportId.exportId()
for additional RPC calls.- Specified by:
release
in interfaceServerObject
- Returns:
- the future
- See Also:
-
close
public final void close()Description copied from interface:ServerObject
Releasesthis
without waiting for the result. After closing, callers should not usethis
object norHasExportId.exportId()
for additional RPC calls. For more control, seeServerObject.release()
.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceServerObject
-
toString
-