Class TableDataServiceFactory
java.lang.Object
io.deephaven.enterprise.tabledataservice.TableDataServiceFactory
- All Implemented Interfaces:
- io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.endpoint.DynamicResolverMixin,- io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.endpoint.EndpointResolver
public class TableDataServiceFactory
extends Object
implements io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.endpoint.DynamicResolverMixin
The standard factory for creating 
TableDataService instances using a DataRoutingService instance- 
Nested Class SummaryNested classes/interfaces inherited from interface io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.endpoint.DynamicResolverMixinio.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.endpoint.DynamicResolverMixin.DeferredDISEndpointServiceRegistryImpl, io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.endpoint.DynamicResolverMixin.DeferredEndpointServiceRegistryImpl, io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.endpoint.DynamicResolverMixin.DeferredLASEndpointServiceRegistryImpl
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final long
- 
Constructor SummaryConstructorsConstructorDescriptionTableDataServiceFactory(@NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.DataRoutingService routingService, @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.schema.SchemaService schemaService, @NotNull ProtocolDriverFactory driverFactory) 
- 
Method SummaryModifier and TypeMethodDescription@NotNull TableDataServicegetOrCreateTableDataService(@NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.TableDataServiceConfig tableDataServiceConfig, boolean forProducer, boolean allowIOMessageFlush) Create the TableDataService starting with an actualTableDataServiceConfiginstancegetOrCreateTableDataService(@NotNull String tdsName, boolean allowIOMessageFlush, boolean forProducer) Get aTableDataServicebased on the routing instructions provided by theDataRoutingServiceprovided at construction time.protected RemoteTableDataServicemakeRemoteTableDataService(@NotNull String serviceName, io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.DataRoutingService.PropertyProvider properties, boolean allowIOMessageFlush) Create a newRemoteTableDataService, allowing for subclass overrides for testing.Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.endpoint.DynamicResolverMixinresolveLogAggregatorEndpoint, resolveTableDataEndpoint, resolveTailerEndpoint
- 
Field Details- 
DEFAULT_TABLE_DATA_SERVICE_REQUEST_TIMEOUT_MILLISpublic static final long DEFAULT_TABLE_DATA_SERVICE_REQUEST_TIMEOUT_MILLIS- See Also:
 
 
- 
- 
Constructor Details- 
TableDataServiceFactorypublic TableDataServiceFactory(@NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.DataRoutingService routingService, @NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.schema.SchemaService schemaService, @NotNull @NotNull ProtocolDriverFactory driverFactory) 
 
- 
- 
Method Details- 
getOrCreateTableDataServicepublic TableDataService getOrCreateTableDataService(@NotNull @NotNull String tdsName, boolean allowIOMessageFlush, boolean forProducer) throws IOException Get aTableDataServicebased on the routing instructions provided by theDataRoutingServiceprovided at construction time. The returned service may be new, or it may be a cached, previously created one.- Parameters:
- tdsName- the name of the table data service to create
- allowIOMessageFlush- if I/O messages should be flushed
- forProducer- if the resultant- TableDataServiceis for a producer such as a- TDCP
- Returns:
- a TableDataServicewhich may or may not be a complex composition of other services.
- Throws:
- IOException
 
- 
getOrCreateTableDataService@NotNull public @NotNull TableDataService getOrCreateTableDataService(@NotNull @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.TableDataServiceConfig tableDataServiceConfig, boolean forProducer, boolean allowIOMessageFlush) throws IOException Create the TableDataService starting with an actualTableDataServiceConfiginstance- Parameters:
- tableDataServiceConfig- the- TableDataServiceConfiginstance (from the map)
- forProducer- the caller is a producer if true, else consumer. Consumers just connect to the config, producers connect to the embedded services and provide a remote TDS endpoint.
- allowIOMessageFlush- boolean to be passed to Remote TDS. Should be false for queries. This is needed because this method is called recursively.
- Returns:
- a TableDataServiceas configured
- Throws:
- io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.DataRoutingConfigurationException- if the configuration is invalid
- IOException
 
- 
makeRemoteTableDataServiceprotected RemoteTableDataService makeRemoteTableDataService(@NotNull @NotNull String serviceName, @NotNull io.deephaven.shadow.enterprise.com.illumon.iris.db.v2.routing.DataRoutingService.PropertyProvider properties, boolean allowIOMessageFlush) Create a newRemoteTableDataService, allowing for subclass overrides for testing. This override assumes some of the parameters needed to construct aRemoteTableDataService.- Parameters:
- serviceName- The name to give the remote service
- Returns:
- a new RemoteTableDataService, ready to be connected
 
 
-