TablePublisher
The TablePublisher class creates a blink table from tables that are added to it via the add method.
Syntax
TablePublisher.of(name, definition, onFlushCallback, onShutdownCallback)
TablePublisher.of(name, definition, onFlushCallback, onShutdownCallback, updateGraph, chunkSize)
Parameters
| Parameter | Type | Description |
|---|---|---|
| name | String | The name of the table publisher. |
| definition | TableDefinition | The table definition. |
| onFlushCallback | Consumer | The on-flush callback. If not |
| onShutdownCallback | Runnable | The on-shutdown callback. If not |
| updateGraph | UpdateGraph | The update graph for the blink table. |
| chunkSize | int | The maximum chunk size. The default value is 2048. |
Returns
A new TablePublisher.
Methods
TablePublisher supports the following methods:
add(table)- Adds a table to the blink table.definition()- Gets the table definition.isAlive()- Checks if the table publisher is alive.publishFailure(failure)- Indicate that data publication has hailed. Listeners will be notified, the on-shutdown callback will be invoked (if it hasn't already been), and future calls toaddwill return without doing anything.table()- Gets the blink table.
Examples
In this example, TablePublisher is used to create a blink table with three columns (X, Y, and Z). The columns are of type int, double, and double, respectively.
import io.deephaven.csv.util.MutableBoolean
import io.deephaven.engine.table.ColumnDefinition
import io.deephaven.engine.table.TableDefinition
import io.deephaven.stream.TablePublisher
definition = TableDefinition.of(
ColumnDefinition.ofInt("X"),
ColumnDefinition.ofDouble("Y"),
ColumnDefinition.ofDouble("Z")
)
shutDown = {println "Finished using My Publisher."}
onShutdown = new MutableBoolean()
publisher = TablePublisher.of("My Publisher", definition, null, shutDown)
source = publisher.table()
To add data to blink table, call add.
publisher.add(emptyTable(10).update("X = randomInt(-100, 100)", "Y = randomDouble(-5.0, 5.0)", "Z = randomDouble(100.0, 1000.0)"))
To shut the publisher down, call publishFailure.
publisher.publishFailure(new RuntimeException("Publisher shut down by user."))