21#ifndef HEDGEHOG_NODE_H
22#define HEDGEHOG_NODE_H
24#include "../core/abstractions/base/node/node_abstraction.h"
34 std::shared_ptr<hh::core::abstraction::NodeAbstraction>
const core_ =
nullptr;
40 explicit Node(std::shared_ptr<hh::core::abstraction::NodeAbstraction>
core) :
core_(std::move(
core)) {
41 if(
core_ ==
nullptr){
throw std::runtime_error(
"The core of a task should be valid (!= nullptr)."); }
49 [[nodiscard]] std::shared_ptr<hh::core::abstraction::NodeAbstraction>
const &
core()
const {
return core_; }
53 [[nodiscard]] std::string
name()
const {
return this->
core()->name(); }
Behavior abstraction for the base node.
std::string name() const
Node's name accessor.
std::shared_ptr< hh::core::abstraction::NodeAbstraction > const core_
Node's core.
virtual ~Node()=default
Default destructor.
Node(std::shared_ptr< hh::core::abstraction::NodeAbstraction > core)
Constructor's node.
std::shared_ptr< hh::core::abstraction::NodeAbstraction > const & core() const
Core accessor.