qosd: добавлены атрибуты узлов
Мне показалось, будет удобно использовать вложенную структуру в качестве аргумента конструктора.
This commit is contained in:
+23
-2
@@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
#include "nodes/ComplexNode.h"
|
||||
#include "mixins/FabricMixin.h"
|
||||
#include "Logger.h"
|
||||
@@ -8,16 +10,35 @@
|
||||
class HTBNode : public ComplexNode,
|
||||
public FabricMixin<HTBNode> {
|
||||
public:
|
||||
struct Config {
|
||||
std::uint64_t rate = 0; ///< Разрешённая полоса, бит/с
|
||||
std::uint64_t burst = 0; ///< Токены для rate, байты
|
||||
std::uint64_t ceil = 0; ///< Допустимая полоса, бит/с
|
||||
std::uint64_t cburst = 0; ///< Токены для ceil, байты
|
||||
std::uint32_t prio = 0; ///< Приоритет класса
|
||||
std::uint32_t quantum = 0; ///< Квант DRR, байты
|
||||
std::int32_t overhead = 0; ///< Поправка размера пакета, байты
|
||||
};
|
||||
|
||||
~HTBNode() {
|
||||
Logger::get("ConDes").dbg(std::string("--- HTB destructor called for: ") + name_);
|
||||
}
|
||||
|
||||
const Config& config() const { return config_; }
|
||||
private:
|
||||
friend class FabricMixin<HTBNode>;
|
||||
HTBNode(std::string name)
|
||||
: ComplexNode(std::move(name)) {
|
||||
HTBNode(std::string&& name) : ComplexNode(std::move(name)) {
|
||||
kind_ = "HTB";
|
||||
Logger::get("ConDes").dbg(std::string("--- HTB constructor called for: ") + name_);
|
||||
}
|
||||
|
||||
HTBNode(std::string&& name, Config&& config) : ComplexNode(std::move(name)),
|
||||
config_(std::move(config)) {
|
||||
kind_ = "HTB";
|
||||
Logger::get("ConDes").dbg(std::string("--- HTB constructor called for: ") + name_);
|
||||
}
|
||||
|
||||
Config config_{};
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user