|
Uni20
Asynchronous tensor and runtime library.
|
Typed result table with synchronous sinks and optional retained history. More...
#include <data_table.hpp>
Public Types | |
| using | row_type = std::tuple< Ts... > |
| using | schema_type = std::tuple< data_column< Ts >... > |
Public Member Functions | |
| template<typename... Us> requires (sizeof...(Ts) == sizeof...(Us) && (data_table_detail::accepts<Ts, Us>() && ...)) | |
| data_delivery_report | append (Us &&... values) |
| Validate once, retain when enabled, then deliver to every active sink in attachment order. | |
| template<typename Sink > | |
| data_attachment | attach (Sink &&output, data_sink_options options={}) |
| Own a sink, begin its output and replay history before subscribing to future rows. | |
| schema_type const & | columns () const noexcept |
| data_table (data_table &&)=default | |
| data_table (data_table const &)=delete | |
| data_table (std::string title, data_column< Ts >... columns) | |
| data_table (std::string title, data_table_options options, data_column< Ts >... columns) | |
| data_delivery_report | finish (table_metadata summary={}) |
| End row insertion and finalize all active outputs, retaining the summary for later replay. | |
| data_delivery_report | finish_sink (data_sink_id id, table_metadata const &summary={}) |
| Finalize and unsubscribe one sink without ending the table or discarding rows. | |
| bool | finished () const noexcept |
| table_metadata const & | metadata () const noexcept |
| data_table & | operator= (data_table &&)=delete |
| data_table & | operator= (data_table const &)=delete |
| std::size_t | retained_size () const noexcept |
| retention | retention_policy () const noexcept |
| std::span< row_type const > | rows () const |
| Require complete retained history before inspecting or exporting rows. | |
| data_sink_state | sink_state (data_sink_id id) const |
| std::size_t | size () const noexcept |
| std::optional< table_metadata > const & | summary () const noexcept |
| std::string const & | title () const noexcept |
Static Public Member Functions | |
| template<typename... Us> requires (sizeof...(Ts) == sizeof...(Us) && (data_table_detail::accepts<Ts, Us>() && ...)) | |
| static row_type | make_row (Us &&... values) |
| Construct a checked, owning row independently of storage or output. | |
Typed result table with synchronous sinks and optional retained history.
Move-only: copying live outputs would duplicate delivery. Call finish explicitly to observe flush errors. Mutation is single-caller and non-reentrant; sink callbacks receive borrowed const schema/rows.
| using uni20::presentation::data_table< Ts >::row_type = std::tuple<Ts...> |
| using uni20::presentation::data_table< Ts >::schema_type = std::tuple<data_column<Ts>...> |
|
inline |
|
inline |
|
delete |
|
default |
|
inline |
Validate once, retain when enabled, then deliver to every active sink in attachment order.
Conversion failure leaves the table unchanged. Output failure occurs after row acceptance; inspect optional failures in the returned report and never retry a failed delivery automatically.
|
inline |
Own a sink, begin its output and replay history before subscribing to future rows.
Sink must provide begin(title, schema, metadata, start), row(schema, row), and finish(summary). Streams/resources borrowed by a sink must outlive its attachment. Failed sinks are disabled.
|
inlinenoexcept |
|
inline |
End row insertion and finalize all active outputs, retaining the summary for later replay.
Repeated finish with no new summary (or the same summary) does not write again. Destruction never substitutes for explicit finalization; snapshots remain available afterwards.
|
inline |
Finalize and unsubscribe one sink without ending the table or discarding rows.
|
inlinenoexcept |
|
inlinestatic |
Construct a checked, owning row independently of storage or output.
|
inlinenoexcept |
|
delete |
|
delete |
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
Require complete retained history before inspecting or exporting rows.
|
inline |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |