Serenity Operating System
at master 44 lines 818 B view raw
1/* 2 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include "Forward.h" 10#include <AK/DeprecatedString.h> 11#include <AK/Forward.h> 12#include <AK/Vector.h> 13#include <LibCore/ElapsedTimer.h> 14 15namespace Shell { 16 17class FileDescriptionCollector { 18public: 19 FileDescriptionCollector() = default; 20 ~FileDescriptionCollector(); 21 22 void collect(); 23 void add(int fd); 24 25private: 26 Vector<int, 32> m_fds; 27}; 28 29class SavedFileDescriptors { 30public: 31 SavedFileDescriptors(Vector<NonnullRefPtr<AST::Rewiring>> const&); 32 ~SavedFileDescriptors(); 33 34private: 35 struct SavedFileDescriptor { 36 int original { -1 }; 37 int saved { -1 }; 38 }; 39 40 Vector<SavedFileDescriptor> m_saves; 41 FileDescriptionCollector m_collector; 42}; 43 44}