21#ifndef HEDGEHOG_NODE_ABSTRACTION_H
22#define HEDGEHOG_NODE_ABSTRACTION_H
38#ifndef DOXYGEN_SHOULD_SKIP_THIS
51namespace abstraction {
53#ifndef DOXYGEN_SHOULD_SKIP_THIS
56class GraphNodeAbstraction;
69 std::chrono::time_point<std::chrono::system_clock>
82 [[nodiscard]] std::string
const &
name()
const {
return name_; }
86 [[nodiscard]]
virtual std::string
id()
const {
87 std::ostringstream oss;
139 [[nodiscard]]
virtual std::vector<std::pair<std::string const, std::string const>>
ids()
const = 0;
Behavior abstraction for the base node.
Base graph node abstraction.
Base core node abstraction.
virtual std::string id() const
Core's id ('x' + address of abstraction) as string.
virtual std::vector< std::pair< std::string const, std::string const > > ids() const =0
Node ids [nodeId, nodeGroupId] accessor.
std::chrono::nanoseconds executionDuration_
Node execution duration.
virtual void registerNode(GraphNodeAbstraction *belongingGraph)
Register node to the given graph.
std::chrono::time_point< std::chrono::system_clock > const & startExecutionTimeStamp() const
Accessor to the starting execution timestamp.
NodeAbstraction(std::string name)
Core node constructor using the core's name.
std::string const name_
Name of the core.
virtual ~NodeAbstraction()=default
DEfault destructor.
std::chrono::time_point< std::chrono::system_clock > startExecutionTimeStamp_
Node begin execution timestamp.
virtual size_t graphId() const
Get the graph identifier (got from belonging graph)
bool isRegistered() const
Accessor to registration flag.
virtual behavior::Node * node() const =0
Node accessor.
GraphNodeAbstraction * belongingGraph_
Graph holding this node.
void incrementExecutionDuration(std::chrono::nanoseconds const &exec)
Increment execution duration.
std::chrono::nanoseconds const & executionDuration() const
Execution duration.
GraphNodeAbstraction * belongingGraph() const
Belonging graph accessor.
std::string const & name() const
Accessor to the core's name.
void startExecutionTimeStamp(std::chrono::time_point< std::chrono::system_clock > const &startExecutionTimeStamp)
Setter to the starting execution timestamp.
virtual int deviceId() const
Get the device identifier (got from belonging graph)
bool isRegistered_
Is registered into a graph.