/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include "Forward.h" #include #include #include #include namespace Shell { class FileDescriptionCollector { public: FileDescriptionCollector() = default; ~FileDescriptionCollector(); void collect(); void add(int fd); private: Vector m_fds; }; class SavedFileDescriptors { public: SavedFileDescriptors(Vector> const&); ~SavedFileDescriptors(); private: struct SavedFileDescriptor { int original { -1 }; int saved { -1 }; }; Vector m_saves; FileDescriptionCollector m_collector; }; }