Program Listing for File NopDuct.hpp¶
↰ Return to documentation for file (include/uit/ducts/mock/NopDuct.hpp)
#pragma once
#ifndef UIT_DUCTS_MOCK_NOPDUCT_HPP_INCLUDE
#define UIT_DUCTS_MOCK_NOPDUCT_HPP_INCLUDE
#include <stddef.h>
#include <string>
#include "../proc/impl/backend/MockBackEnd.hpp"
namespace uit {
template<typename ImplSpec>
class NopDuct {
using T = typename ImplSpec::T;
public:
using InletImpl = NopDuct<ImplSpec>;
using OutletImpl = NopDuct<ImplSpec>;
using BackEndImpl = uit::MockBackEnd<ImplSpec>;
T val{};
template <typename... Args>
NopDuct(Args&&... args) { ; }
bool TryPut(const T&) { return false; }
bool TryFlush() const { return true; }
const T& Get() const { return val; }
T& Get() { return val; }
size_t TryConsumeGets(size_t) { return 0; }
static std::string GetName() { return "NopDuct"; }
static constexpr bool CanStep() { return true; }
std::string ToString() const { return std::string{}; }
};
} // namespace uit
#endif // #ifndef UIT_DUCTS_MOCK_NOPDUCT_HPP_INCLUDE