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.