/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
util/stream/null.h
61 строка
1 KB
qkrorlqr
Initial NBS OpenSource export
28 апр 2023, 21:54
28 апр 2023, 21:54
783a858
Код
Авторство
О чём код?
#pragma once #include "zerocopy.h" #include "output.h" /** * @addtogroup Streams * @{ */ /** * Null input stream. Does nothing, contains no data. */ class TNullInput: public IZeroCopyInput { public: TNullInput() noexcept; ~TNullInput() override; private: size_t DoRead(void* buf, size_t len) override; size_t DoSkip(size_t len) override; size_t DoNext(const void** ptr, size_t len) override; }; /** * Null output stream. Just ignores whatever is written into it. */ class TNullOutput: public IOutputStream { public: TNullOutput() noexcept; ~TNullOutput() override; TNullOutput(TNullOutput&&) noexcept = default; TNullOutput& operator=(TNullOutput&&) noexcept = default; private: void DoWrite(const void* buf, size_t len) override; }; /** * Null input-output stream. * * @see TNullInput * @see TNullOutput */ class TNullIO: public TNullInput, public TNullOutput { public: TNullIO() noexcept; ~TNullIO() override; }; namespace NPrivate { TNullIO& StdNullStream() noexcept; } /** * Standard null stream. */ #define Cnull (::NPrivate::StdNullStream()) /** @} */