5#ifndef RPNXQUERYGRAPH_GRAPHDATA_HPP
6#define RPNXQUERYGRAPH_GRAPHDATA_HPP
16#include "rpnx/macros.hpp"
26RPNX_ENUM(rpnx::querygraph,
status, std::uint8_t, pending, completed, canonical_error, unexpected_exception);
39namespace rpnx::querygraph
42 using tsig = std::array< std::byte, 16 >;
std::array< std::byte, 16 > tsig
Fixed-size RPNXSerialization type-signature digest.
status
Terminal or in-progress state recorded for a dumped result.
Serializable representation of a registered canonical error.
std::vector< std::byte > m_error_data
Exception value serialized through binary_traits.
tsig m_error_typesig
Type signature identifying the registered exception type.
std::string m_error_message
Human-readable message returned by std::exception::what().
Complete serializable snapshot of a QueryGraph instance.
std::map< std::string, query_class_data > m_node_classes
Query classes indexed by their stable query_id.
std::optional< node_reference_data > m_root_node
Selected root for a partial dump, if one was requested.
Serializable identity of a memoized query node.
std::vector< std::byte > m_input_data
Serialized query input that distinguishes the node instance.
std::string m_query_id
Stable query_id supplied by the query specification.
All memoized instances belonging to one query specification.
tsig m_output_typesig
Type signature for the query output type.
tsig m_input_typesig
Type signature for the query input type.
std::map< std::vector< std::byte >, query_node_data > m_instances
Nodes indexed by serialized query input.
Serialized state and outgoing edges of one memoized query node.
std::vector< node_reference_data > m_dependencies
Query nodes directly requested by this node.
std::optional< canonical_error_result_data > m_error_result
Canonical error payload when m_status is canonical_error.
std::map< std::string, subquery_class_data > m_subqueries
Produced or requested subquery classes indexed by subquery_id.
status m_status
Current result status.
std::vector< std::byte > m_output_data
Serialized output, or diagnostic bytes for an error.
std::vector< std::string > m_messages
Source-formatted diagnostic messages yielded by the handler.
All instances of one subquery specification under a parent node.
std::map< std::vector< std::byte >, subquery_instance_data > m_instances
Instances indexed by serialized subquery input.
tsig m_input_typesig
Type signature for the subquery input type.
tsig m_output_typesig
Type signature for the subquery output type.
Serialized state of one subquery input beneath a parent node.
std::vector< std::byte > m_output_data
Serialized output, or diagnostic bytes for an error.
status m_status
Current result status.
std::optional< canonical_error_result_data > m_error_result
Canonical error payload when m_status is canonical_error.