Utility classes#
These are various utility and helper classes available in the system.
-
class TableMaker#
A convenience class for populating small tables. It is a wrapper around Arrow Flight’s DoPut functionality. Typical usage
TableMaker tm; std::vector<T1> data1 = { ... }; std::vector<T2> data2 = { ... }; tm.AddColumn("col1", data1); tm.AddColumn("col2", data2); auto tableHandle = tm.MakeTable();
Public Functions
-
TableMaker()#
Constructor
-
~TableMaker()#
Destructor
-
template<typename T>
void AddColumn(std::string name, const std::vector<T> &values)# Creates a column whose server type most closely matches type T, having the given name and values. Each call to this method adds a column. When there are multiple calls to this method, the sizes of the
values
arrays must be consistent.
-
TableHandle MakeTable(const TableHandleManager &manager)#
Make the table. Call this after all your calls to AddColumn().
- Parameters:
manager – The TableHandleManager
- Returns:
The TableHandle referencing the newly-created table.
-
TableMaker()#
-
class FlightWrapper#
This class provides an interface to Arrow Flight, which is the main way to push data into and get data out of the system.
Public Functions
Constructor. Used internally.
-
~FlightWrapper()#
Destructor
-
std::unique_ptr<arrow::flight::FlightStreamReader> GetFlightStreamReader(const TableHandle &table) const#
Construct an Arrow FlightStreamReader that is set up to read the given TableHandle.
- Parameters:
table – The table to read from.
- Returns:
An Arrow FlightStreamReader
-
void AddHeaders(arrow::flight::FlightCallOptions *options) const#
Add Deephaven authentication headers, and any other extra headers request at session creation, to Arrow FlightCallOptions.
This is a bit of a hack, and is used in the scenario Where the caller is rolling their own Arrow Flight
DoPut
operation. Example code might look like this:// Get a FlightWrapper auto wrapper = manager.CreateFlightWrapper(); // Get a auto [result, fd] = manager.newTableHandleAndFlightDescriptor(); // Empty FlightCallOptions arrow::flight::FlightCallOptions options; // add Deephaven auth headers to the FlightCallOptions wrapper.AddHeaders(&options); std::unique_ptr<arrow::flight::FlightStreamWriter> fsw; std::unique_ptr<arrow::flight::FlightMetadataReader> fmr; auto status = wrapper.FlightClient()->DoPut(options, fd, Schema, &fsw, &fmr);
- Parameters:
options – Destination object Where the authentication headers should be written.
-
arrow::flight::FlightClient *FlightClient() const#
Gets the underlying FlightClient
- Returns:
A pointer to the FlightClient.