/
tomilov
/
sah_kd_tree
Обзор
Документация
Войти
/
tomilov
/
sah_kd_tree
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/utils/fd.cpp
54 строки
671 B
Anatoliy Tomilov
fixed
01 окт 2024, 00:13
01 окт 2024, 00:13
ed50b57
Код
Авторство
О чём код?
#include <utils/assert.hpp> #include <utils/fd.hpp> #include <utility> #include <unistd.h> namespace utils { Fd::Fd(int fd) : fd{fd} { INVARIANT(fd >= 0, "{}", fd); } Fd::Fd(Fd && file) noexcept : fd{std::exchange(file.fd, fd)} { INVARIANT(fd >= 0, "{}", fd); } Fd::~Fd() { if (fd < 0) { return; } ::close(fd); } Fd Fd::dup(int fd) { INVARIANT(fd >= 0, "{}", fd); fd = ::dup(fd); INVARIANT(fd >= 0, "{}", fd); return Fd{fd}; } const int & Fd::getFd() const & { return fd; } int Fd::release() && { return std::exchange(fd, -1); } Fd Fd::clone() const { return Fd::dup(fd); } } // namespace utils