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