Files
poc-links/include/links/NotImplementedLink.h
T
Сергей Маринкевич d00bb90a38 blah
2025-08-05 19:30:21 +07:00

28 lines
1016 B
C++

#pragma once
#include <vector>
#include "ifaces/ILink.h"
#include "Logger.h"
/// \brief Заглушка для не реализованной связи между элементами.
/// Все методы возвращают пустые значения или не выполняют действий.
/// \tparam TElem Тип элемента.
template <class TElem>
class NotImplementedLink : public ILink<TElem> {
using ElemPtr = std::shared_ptr<TElem>>;
public:
NotImplementedLink(ElemPtr node) {}
ElemPtr getNode() const override { return nullptr; }
ElemPtr getParent() const override { return nullptr; }
void setParent(const ElemPtr& parent) override { }
const std::vector<ElemPtr>& getChildren() const override { return empty_; }
void addChild(const ElemPtr& child) override { }
void removeChild(const ElemPtr& child) override { }
~NotImplementedLink() override {
Logger::get("ConDes").dbg("--- Destructor called for: NotImplementedLink");
}
private:
std::vector<ElemPtr> empty_;
};