Class AbstractTableApi<T>

java.lang.Object
org.yamcs.protobuf.AbstractTableApi<T>
All Implemented Interfaces:
Api<T>
Direct Known Subclasses:
TableApi, TableApiClient

@Generated(value="org.yamcs.protoc.ServiceGenerator", date="2024-04-22T11:12:45.250607550Z") public abstract class AbstractTableApi<T> extends Object implements Api<T>
  Service for reading and writing to Yamcs tables and streams
 
  • Constructor Details

    • AbstractTableApi

      public AbstractTableApi()
  • Method Details

    • 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 histograms so a histogram rebuild
        is required after the load.  
       
    • rebuildHistogram

      public abstract void rebuildHistogram(T ctx, Table.RebuildHistogramRequest request, Observer<Table.RebuildHistogramResponse> observer)
        Rebuilds histograms - this is required after a table load.
       
        Currently 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:
      getDescriptorForType in interface Api<T>
    • getRequestPrototype

      public final com.google.protobuf.Message getRequestPrototype(com.google.protobuf.Descriptors.MethodDescriptor method)
      Specified by:
      getRequestPrototype in interface Api<T>
    • getResponsePrototype

      public final com.google.protobuf.Message getResponsePrototype(com.google.protobuf.Descriptors.MethodDescriptor method)
      Specified by:
      getResponsePrototype in interface Api<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:
      callMethod in interface Api<T>
    • callMethod

      public final Observer<com.google.protobuf.Message> callMethod(com.google.protobuf.Descriptors.MethodDescriptor method, T ctx, Observer<com.google.protobuf.Message> future)
      Specified by:
      callMethod in interface Api<T>