add hierarchical node

This commit is contained in:
Сергей Маринкевич
2025-07-24 15:14:08 +07:00
parent 55ef99c848
commit c228caaa45
15 changed files with 330 additions and 46 deletions
+5 -2
View File
@@ -2,16 +2,19 @@
#include <iostream>
#include "ifaces/INode.h"
#include "Logger.h"
class BaseNode : public virtual INode {
public:
BaseNode(std::string name) : name_(std::move(name)) {
std::cout << "--- Base constructor called for: " << name_ << "\n";
Logger::get("Node").dbg(std::string("--- Base constructor called for: ") + name_);
}
const std::string& name() const override { return name_; }
const std::string& kind() const override { return kind_; }
~BaseNode() {
std::cout << "--- Base destructor called for: " << name_ << "\n";
Logger::get("Node").dbg(std::string("--- Base destructor called for: ") + name_);
}
protected:
std::string name_;
std::string kind_;
};
+17
View File
@@ -0,0 +1,17 @@
#pragma once
#include <iostream>
#include "nodes/BaseNode.h"
#include "mixins/HierarchicalLinkMixin.h"
#include "Logger.h"
class ComplexNode : public BaseNode,
virtual public HierarchicalLinkMixin {
public:
~ComplexNode() {
Logger::get("Node").dbg(std::string("--- Complex destructor called for: ") + name_);
}
ComplexNode(std::string name) : BaseNode(std::move(name)) {
Logger::get("Node").dbg(std::string("--- Complex constructor called for: ") + name_);
}
};
+5 -4
View File
@@ -3,15 +3,16 @@
#include "nodes/BaseNode.h"
#include "mixins/LazyLinkMixin.h"
#include "links/OneToManyLink.h"
#include "links/OneToOneLink.h"
#include "Logger.h"
class SimpleNode : public BaseNode,
virtual public LazyLinkMixin<OneToManyLink<ILinkMixin>> {
virtual public LazyLinkMixin<OneToOneLink<ILinkMixin>> {
public:
~SimpleNode() {
std::cout << "--- Simple destructor called for: " << name_ << "\n";
Logger::get("Node").dbg(std::string("--- Simple destructor called for: ") + name_);
}
SimpleNode(std::string name) : BaseNode(std::move(name)) {
std::cout << "--- Simple constructor called for: " << name_ << "\n";
Logger::get("Node").dbg(std::string("--- Simple constructor called for: ") + name_);
}
};