Package org.yamcs.protobuf
Class TableApiClient
- java.lang.Object
-
- org.yamcs.protobuf.AbstractTableApi<Void>
-
- org.yamcs.protobuf.TableApiClient
-
public class TableApiClient extends AbstractTableApi<Void>
Service for reading and writing to Yamcs tables and streams
-
-
Constructor Summary
Constructors Constructor Description TableApiClient(MethodHandler handler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidexecuteSql(Void ctx, Table.ExecuteSqlRequest request, Observer<Table.ResultSet> observer)Execute SQLvoidexecuteStreamingSql(Void ctx, Table.ExecuteSqlRequest request, Observer<Table.ResultSet> observer)Execute streaming SQLvoidgetStream(Void ctx, Table.GetStreamRequest request, Observer<Table.StreamInfo> observer)Get a streamvoidgetTable(Void ctx, Table.GetTableRequest request, Observer<Table.TableInfo> observer)Get a tablevoidgetTableData(Void ctx, Table.GetTableDataRequest request, Observer<Table.TableData> observer)Get table datavoidlistStreams(Void ctx, Table.ListStreamsRequest request, Observer<Table.ListStreamsResponse> observer)List streams Note that this will only list the fixed columns of the stream.voidlistTables(Void ctx, Table.ListTablesRequest request, Observer<Table.ListTablesResponse> observer)List tables The response will only include fixed columns of the table.voidreadRows(Void 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``).voidrebuildHistogram(Void ctx, Table.RebuildHistogramRequest request, Observer<Table.RebuildHistogramResponse> observer)Rebulds histograms - this is required after a table load.voidsubscribeStream(Void ctx, Table.SubscribeStreamRequest request, Observer<Table.StreamData> observer)Receive stream updatesvoidsubscribeStreamStatistics(Void ctx, Table.SubscribeStreamStatisticsRequest request, Observer<StreamEvent> observer)Receive updates on stream statsObserver<Table.WriteRowsRequest>writeRows(Void ctx, Observer<Table.WriteRowsResponse> observer)Imports a stream of rows The table has to exist in order to load data into it.-
Methods inherited from class org.yamcs.protobuf.AbstractTableApi
callMethod, callMethod, getDescriptorForType, getRequestPrototype, getResponsePrototype
-
-
-
-
Constructor Detail
-
TableApiClient
public TableApiClient(MethodHandler handler)
-
-
Method Detail
-
executeSql
public final void executeSql(Void ctx, Table.ExecuteSqlRequest request, Observer<Table.ResultSet> observer)
Execute SQL
- Specified by:
executeSqlin classAbstractTableApi<Void>
-
executeStreamingSql
public final void executeStreamingSql(Void ctx, Table.ExecuteSqlRequest request, Observer<Table.ResultSet> observer)
Execute streaming SQL
- Specified by:
executeStreamingSqlin classAbstractTableApi<Void>
-
listStreams
public final void listStreams(Void 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.
- Specified by:
listStreamsin classAbstractTableApi<Void>
-
subscribeStreamStatistics
public final void subscribeStreamStatistics(Void ctx, Table.SubscribeStreamStatisticsRequest request, Observer<StreamEvent> observer)
Receive updates on stream stats
- Specified by:
subscribeStreamStatisticsin classAbstractTableApi<Void>
-
getStream
public final void getStream(Void ctx, Table.GetStreamRequest request, Observer<Table.StreamInfo> observer)
Get a stream
- Specified by:
getStreamin classAbstractTableApi<Void>
-
subscribeStream
public final void subscribeStream(Void ctx, Table.SubscribeStreamRequest request, Observer<Table.StreamData> observer)
Receive stream updates
- Specified by:
subscribeStreamin classAbstractTableApi<Void>
-
listTables
public final void listTables(Void 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.
- Specified by:
listTablesin classAbstractTableApi<Void>
-
getTable
public final void getTable(Void ctx, Table.GetTableRequest request, Observer<Table.TableInfo> observer)
Get a table
- Specified by:
getTablein classAbstractTableApi<Void>
-
getTableData
public final void getTableData(Void ctx, Table.GetTableDataRequest request, Observer<Table.TableData> observer)
Get table data
- Specified by:
getTableDatain classAbstractTableApi<Void>
-
readRows
public final void readRows(Void 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.
- Specified by:
readRowsin classAbstractTableApi<Void>
-
writeRows
public final Observer<Table.WriteRowsRequest> writeRows(Void 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.
- Specified by:
writeRowsin classAbstractTableApi<Void>
-
rebuildHistogram
public final void rebuildHistogram(Void 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.
- Specified by:
rebuildHistogramin classAbstractTableApi<Void>
-
-