/* * Copyright (c) 2021, timmot * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace FileSystemAccessServer { class ClientConnection final : public IPC::ClientConnection { C_OBJECT(ClientConnection); public: explicit ClientConnection(NonnullRefPtr, int client_id); ~ClientConnection() override; virtual void die() override; private: virtual Messages::FileSystemAccessServer::RequestFileResponse request_file(String const&, Core::OpenMode const&) override; virtual Messages::FileSystemAccessServer::PromptOpenFileResponse prompt_open_file(String const&, Core::OpenMode const&) override; virtual Messages::FileSystemAccessServer::PromptSaveFileResponse prompt_save_file(String const&, String const&, String const&, Core::OpenMode const&) override; template T prompt_helper(Optional const&, Core::OpenMode const&); HashMap m_approved_files; }; }