qosd: прокинут kind до BaseNode

Теперь конкретные узлы не сами устанавливают себе `kind_`, а делают это
через `BaseNode` — единую точку входа.
This commit is contained in:
Сергей Маринкевич
2025-10-08 17:39:31 +07:00
parent 9b5996abb5
commit b6ff5b79f9
6 changed files with 14 additions and 18 deletions
+2 -1
View File
@@ -9,7 +9,8 @@ class BaseNode : public virtual INode {
public: public:
/// \brief Конструктор узла. /// \brief Конструктор узла.
/// \param name Неуникальное имя узла. /// \param name Неуникальное имя узла.
BaseNode(std::string name) : name_(std::move(name)) { BaseNode(std::string name, std::string kind) :
name_(std::move(name)), kind_(std::move(kind)) {
Logger::get("ConDes").dbg(std::string("--- Base constructor called for: ") + name_); Logger::get("ConDes").dbg(std::string("--- Base constructor called for: ") + name_);
} }
/// \brief Неуникальное имя узла. /// \brief Неуникальное имя узла.
+2 -1
View File
@@ -14,7 +14,8 @@ public:
Logger::get("ConDes").dbg(std::string("--- Complex destructor called for: ") + name_); Logger::get("ConDes").dbg(std::string("--- Complex destructor called for: ") + name_);
} }
protected: protected:
ComplexNode(std::string name) : BaseNode(std::move(name)) { ComplexNode(std::string name, std::string kind) :
BaseNode(std::move(name), std::move(kind)) {
Logger::get("ConDes").dbg(std::string("--- Complex constructor called for: ") + name_); Logger::get("ConDes").dbg(std::string("--- Complex constructor called for: ") + name_);
} }
}; };
+2 -4
View File
@@ -27,14 +27,12 @@ public:
const Config& config() const { return config_; } const Config& config() const { return config_; }
private: private:
friend class FabricMixin<HTBNode>; friend class FabricMixin<HTBNode>;
HTBNode(std::string&& name) : ComplexNode(std::move(name)) { HTBNode(std::string&& name) : ComplexNode(std::move(name), "HTB") {
kind_ = "HTB";
Logger::get("ConDes").dbg(std::string("--- HTB constructor called for: ") + name_); Logger::get("ConDes").dbg(std::string("--- HTB constructor called for: ") + name_);
} }
HTBNode(std::string&& name, Config&& config) : ComplexNode(std::move(name)), HTBNode(std::string&& name, Config&& config) : ComplexNode(std::move(name), "HTB"),
config_(std::move(config)) { config_(std::move(config)) {
kind_ = "HTB";
Logger::get("ConDes").dbg(std::string("--- HTB constructor called for: ") + name_); Logger::get("ConDes").dbg(std::string("--- HTB constructor called for: ") + name_);
} }
+2 -2
View File
@@ -15,8 +15,8 @@ public:
Logger::get("ConDes").dbg(std::string("--- Leaf destructor called for: ") + name_); Logger::get("ConDes").dbg(std::string("--- Leaf destructor called for: ") + name_);
} }
protected: protected:
LeafNode(std::string name, std::string kind) : BaseNode(std::move(name)) { LeafNode(std::string name, std::string kind) :
kind_ = std::move(kind); BaseNode(std::move(name), std::move(kind)) {
Logger::get("ConDes").dbg(std::string("--- Leaf constructor called for: ") + name_ + ", kind=" + kind_); Logger::get("ConDes").dbg(std::string("--- Leaf constructor called for: ") + name_ + ", kind=" + kind_);
} }
}; };
+3 -5
View File
@@ -31,14 +31,12 @@ public:
const Config& config() const { return config_; } const Config& config() const { return config_; }
private: private:
friend class FabricMixin<SFQNode>; friend class FabricMixin<SFQNode>;
SFQNode(std::string&& name) : BaseNode(std::move(name)) { SFQNode(std::string&& name) : BaseNode(std::move(name), "SFQ") {
kind_ = "SFQ";
Logger::get("ConDes").dbg(std::string("--- SFQ constructor called for: ") + name_); Logger::get("ConDes").dbg(std::string("--- SFQ constructor called for: ") + name_);
} }
SFQNode(std::string&& name, Config&& config) SFQNode(std::string&& name, Config&& config) : BaseNode(std::move(name), "SFQ"),
: BaseNode(std::move(name)), config_(std::move(config)) { config_(std::move(config)) {
kind_ = "SFQ";
Logger::get("ConDes").dbg(std::string("--- SFQ constructor called for: ") + name_); Logger::get("ConDes").dbg(std::string("--- SFQ constructor called for: ") + name_);
} }
+3 -5
View File
@@ -29,14 +29,12 @@ public:
const Config& config() const { return config_; } const Config& config() const { return config_; }
private: private:
friend class FabricMixin<WREDNode>; friend class FabricMixin<WREDNode>;
WREDNode(std::string&& name) : BaseNode(std::move(name)) { WREDNode(std::string&& name) : BaseNode(std::move(name), "WRED") {
kind_ = "WRED";
Logger::get("ConDes").dbg(std::string("--- WRED constructor called for: ") + name_); Logger::get("ConDes").dbg(std::string("--- WRED constructor called for: ") + name_);
} }
WREDNode(std::string&& name, Config&& config) WREDNode(std::string&& name, Config&& config) : BaseNode(std::move(name), "WRED"),
: BaseNode(std::move(name)), config_(std::move(config)) { config_(std::move(config)) {
kind_ = "WRED";
Logger::get("ConDes").dbg(std::string("--- WRED constructor called for: ") + name_); Logger::get("ConDes").dbg(std::string("--- WRED constructor called for: ") + name_);
} }