43b44d7ee5
Мне показалось, будет удобно использовать вложенную структуру в качестве аргумента конструктора.
37 lines
998 B
C++
37 lines
998 B
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include "nodes/LeafNode.h"
|
|
#include "mixins/FabricMixin.h"
|
|
#include "Logger.h"
|
|
|
|
/// \brief Узел дисциплины PFIFO. Лист.
|
|
class PFIFONode : public LeafNode,
|
|
public FabricMixin<PFIFONode> {
|
|
public:
|
|
struct Config {
|
|
/// \brief Кол-во пакетов.
|
|
std::uint32_t limit;
|
|
};
|
|
|
|
~PFIFONode() {
|
|
Logger::get("ConDes").dbg(std::string("--- PFIFO destructor called for: ") + name_);
|
|
}
|
|
|
|
const Config& config() const { return config_; }
|
|
private:
|
|
friend class FabricMixin<PFIFONode>;
|
|
PFIFONode(std::string&& name) : LeafNode(std::move(name), "PFIFO") {
|
|
Logger::get("ConDes").dbg(std::string("--- PFIFO constructor called for: ") + name_);
|
|
}
|
|
|
|
PFIFONode(std::string&& name, Config&& config) : LeafNode(std::move(name), "PFIFO"),
|
|
config_(std::move(config)) {
|
|
Logger::get("ConDes").dbg(std::string("--- PFIFO constructor called for: ") + name_);
|
|
}
|
|
|
|
Config config_{};
|
|
};
|
|
|
|
|