libtcspc C++ API
Streaming TCSPC and time tag data processing
Loading...
Searching...
No Matches
Introspection

Description

Processor introspection and Graphviz graph generation.

A rudimentary mechanism is provided to inspect a processing graph and its nodes. Every processor implements an introspect_graph() member function (see Processors) which returns a representation (tcspc::processor_graph) of the graph made up by that processor and all downstream processors. This graph can be queried for its nodes (identified by tcspc::processor_node_id) and edges, as well as basic information about each node (tcspc::processor_info).

The graph can also be formatted as a Graphviz graph using tcspc::graphviz_from_processor_graph().

Note
Processor info and graph expose implementation details that may not be stable. It is intended primarily for visualization, debugging, and testing; not as a basis for automation.

Classes

class  tcspc::processor_graph
 Value type representing a directed acyclic graph of processors. More...
class  tcspc::processor_info
 Value type representing metadata of a processor. More...
class  tcspc::processor_node_id
 Value type representing processor identity within a graph. More...

Functions

auto tcspc::graphviz_from_processor_graph (processor_graph const &graph) -> std::string
 Return a Graphviz dot representation of a processor graph.
auto tcspc::merge_processor_graphs (processor_graph const &a, processor_graph const &b) -> processor_graph
 Create a new processor graph by merging two existing ones.

Function Documentation

◆ graphviz_from_processor_graph()

auto tcspc::graphviz_from_processor_graph ( processor_graph const & graph) -> std::string
inlinenodiscard

Return a Graphviz dot representation of a processor graph.

Parameters
graphthe processor graph
Returns
Graphviz dot input representing the graph

◆ merge_processor_graphs()

auto tcspc::merge_processor_graphs ( processor_graph const & a,
processor_graph const & b ) -> processor_graph
inlinenodiscard

Create a new processor graph by merging two existing ones.

The resulting graph contains all of the nodes and edges of a and b. Its entry points are the union of the entry points of a and b.

Parameters
athe first processor graph to merge
bthe second processor graph to merge
Returns
the merged processor graph