Package org.yamcs.protobuf
Class AbstractTableApi<T>
- java.lang.Object
-
- org.yamcs.protobuf.AbstractTableApi<T>
-
- All Implemented Interfaces:
Api<T>
- Direct Known Subclasses:
TableApiClient
public abstract class AbstractTableApi<T> extends Object implements Api<T>
Service for reading and writing to Yamcs tables and streams
-
-
Constructor Summary
Constructors Constructor Description AbstractTableApi()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidcallMethod(com.google.protobuf.Descriptors.MethodDescriptor method, T ctx, com.google.protobuf.Message request, Observer<com.google.protobuf.Message> future)Observer<com.google.protobuf.Message>callMethod(com.google.protobuf.Descriptors.MethodDescriptor method, T ctx, Observer<com.google.protobuf.Message> future)abstract voidexecuteSql(T ctx, Table.ExecuteSqlRequest request, Observer<Table.ResultSet> observer)Execute SQLabstract voidexecuteStreamingSql(T ctx, Table.ExecuteSqlRequest request, Observer<Table.ResultSet> observer)Execute streaming SQLcom.google.protobuf.Descriptors.ServiceDescriptorgetDescriptorForType()com.google.protobuf.MessagegetRequestPrototype(com.google.protobuf.Descriptors.MethodDescriptor method)com.google.protobuf.MessagegetResponsePrototype(com.google.protobuf.Descriptors.MethodDescriptor method)abstract voidgetStream(T ctx, Table.GetStreamRequest request, Observer<Table.StreamInfo> observer)Get a streamabstract voidgetTable(T ctx, Table.GetTableRequest request, Observer<Table.TableInfo> observer)Get a tableabstract voidgetTableData(T ctx, Table.GetTableDataRequest request, Observer<Table.TableData> observer)Get table dataabstract voidlistStreams(T ctx, Table.ListStreamsRequest request, Observer<Table.ListStreamsResponse> observer)List streams Note that this will only list the fixed columns of the stream.abstract voidlistTables(T ctx, Table.ListTablesRequest request, Observer<Table.ListTablesResponse> observer)List tables The response will only include fixed columns of the table.abstract voidreadRows(T ctx, Table.ReadRowsRequest request, Observer<Table.Row> observer)Streams back the contents of all rows in key order The ``ColumnInfo`` message assigns an integer ``id`` for each column and the ``id`` is present in each cell belonging to that column (this is done in order to avoid sending the ``ColumnInfo`` with each ``Cell``).abstract voidrebuildHistogram(T ctx, Table.RebuildHistogramRequest request, Observer<Table.RebuildHistogramResponse> observer)Rebulds histograms - this is required after a table load.abstract voidsubscribeStream(T ctx, Table.SubscribeStreamRequest request, Observer<Table.StreamData> observer)Receive stream updatesabstract voidsubscribeStreamStatistics(T ctx, Table.SubscribeStreamStatisticsRequest request, Observer<StreamEvent> observer)Receive updates on stream statsabstract Observer<Table.WriteRowsRequest>writeRows(T ctx, Observer<Table.WriteRowsResponse> observer)Imports a stream of rows The table has to exist in order to load data into it.
-
-
-
Method Detail
-
executeSql
public abstract void executeSql(T ctx, Table.ExecuteSqlRequest request, Observer<Table.ResultSet> observer)
Execute SQL
-
executeStreamingSql
public abstract void executeStreamingSql(T ctx, Table.ExecuteSqlRequest request, Observer<Table.ResultSet> observer)
Execute streaming SQL
-
listStreams
public abstract void listStreams(T ctx, Table.ListStreamsRequest request, Observer<Table.ListStreamsResponse> observer)
List streams Note that this will only list the fixed columns of the stream. Tuples may always have extra columns.
-
subscribeStreamStatistics
public abstract void subscribeStreamStatistics(T ctx, Table.SubscribeStreamStatisticsRequest request, Observer<StreamEvent> observer)
Receive updates on stream stats
-
getStream
public abstract void getStream(T ctx, Table.GetStreamRequest request, Observer<Table.StreamInfo> observer)
Get a stream
-
subscribeStream
public abstract void subscribeStream(T ctx, Table.SubscribeStreamRequest request, Observer<Table.StreamData> observer)
Receive stream updates
-
listTables
public abstract void listTables(T ctx, Table.ListTablesRequest request, Observer<Table.ListTablesResponse> observer)
List tables The response will only include fixed columns of the table. Tuples may always add extra value columns.
-
getTable
public abstract void getTable(T ctx, Table.GetTableRequest request, Observer<Table.TableInfo> observer)
Get a table
-
getTableData
public abstract void getTableData(T ctx, Table.GetTableDataRequest request, Observer<Table.TableData> observer)
Get table data
-
readRows
public abstract void readRows(T ctx, Table.ReadRowsRequest request, Observer<Table.Row> observer)
Streams back the contents of all rows in key order The ``ColumnInfo`` message assigns an integer ``id`` for each column and the ``id`` is present in each cell belonging to that column (this is done in order to avoid sending the ``ColumnInfo`` with each ``Cell``). The column id starts from 0 and are incremented with each new column found. The ids are only valid during one single dump. The dumped data does not contain information on any table characteristics such as (primary) key, partitioning or other storage options.
-
writeRows
public abstract Observer<Table.WriteRowsRequest> writeRows(T ctx, Observer<Table.WriteRowsResponse> observer)
Imports a stream of rows The table has to exist in order to load data into it. As soon as the server detects an error with one of the written rows, it will forcefully close the connection and send back an early error message. The client should stop streaming and handle the error. Note that the erratic condition causes the connection to be closed even if the ``Keep-Alive`` request header was enabled. The error response is of type ``ExceptionMessage`` and contains a detail message of type ``WriteRowsExceptionDetail`` that provides the number of rows that were successfully written by the client. The client can use this information to link the error message to a row (i.e. the bad row is at position ``count + 1`` of the stream). One possible error could be that the table has defined a (primary) key and one of the loaded rows contains no value for one of the columns of the key. The table load will overwrite any data existing in the table with the same key as the imported row. The table load will not update the historgrams so a histogram rebuild is required after the load.
-
rebuildHistogram
public abstract void rebuildHistogram(T ctx, Table.RebuildHistogramRequest request, Observer<Table.RebuildHistogramResponse> observer)
Rebulds histograms - this is required after a table load. Turrently the time interval passed in the request will be used to select the partitions which will be rebuild - any partition overlapping with the interval will be rebuilt. If the table is not partitioned by time, the histogram for the entire table will be rebuild.
-
getDescriptorForType
public final com.google.protobuf.Descriptors.ServiceDescriptor getDescriptorForType()
- Specified by:
getDescriptorForTypein interfaceApi<T>
-
getRequestPrototype
public final com.google.protobuf.Message getRequestPrototype(com.google.protobuf.Descriptors.MethodDescriptor method)
- Specified by:
getRequestPrototypein interfaceApi<T>
-
getResponsePrototype
public final com.google.protobuf.Message getResponsePrototype(com.google.protobuf.Descriptors.MethodDescriptor method)
- Specified by:
getResponsePrototypein interfaceApi<T>
-
callMethod
public final void callMethod(com.google.protobuf.Descriptors.MethodDescriptor method, T ctx, com.google.protobuf.Message request, Observer<com.google.protobuf.Message> future)- Specified by:
callMethodin interfaceApi<T>
-
-