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.