Serenity Operating System
at master 49 lines 1.8 kB view raw
1/* 2 * Copyright (c) 2021, timmot <tiwwot@protonmail.com> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <AK/HashMap.h> 10#include <FileSystemAccessServer/FileSystemAccessClientEndpoint.h> 11#include <FileSystemAccessServer/FileSystemAccessServerEndpoint.h> 12#include <LibCore/Forward.h> 13#include <LibGUI/Forward.h> 14#include <LibIPC/ConnectionFromClient.h> 15 16namespace FileSystemAccessServer { 17 18class ConnectionFromClient final 19 : public IPC::ConnectionFromClient<FileSystemAccessClientEndpoint, FileSystemAccessServerEndpoint> { 20 C_OBJECT(ConnectionFromClient); 21 22public: 23 ~ConnectionFromClient() override = default; 24 25 virtual void die() override; 26 27private: 28 explicit ConnectionFromClient(NonnullOwnPtr<Core::LocalSocket>); 29 30 virtual void request_file_read_only_approved(i32, i32, i32, DeprecatedString const&) override; 31 virtual void request_file(i32, i32, i32, DeprecatedString const&, Core::File::OpenMode) override; 32 virtual void prompt_open_file(i32, i32, i32, DeprecatedString const&, DeprecatedString const&, Core::File::OpenMode) override; 33 virtual void prompt_save_file(i32, i32, i32, DeprecatedString const&, DeprecatedString const&, DeprecatedString const&, Core::File::OpenMode) override; 34 35 void prompt_helper(i32, Optional<DeprecatedString> const&, Core::File::OpenMode); 36 RefPtr<GUI::Window> create_dummy_child_window(i32, i32); 37 38 enum class ShouldPrompt { 39 No, 40 Yes 41 }; 42 void request_file_handler(i32, i32, i32, DeprecatedString const&, Core::File::OpenMode, ShouldPrompt); 43 44 virtual Messages::FileSystemAccessServer::ExposeWindowServerClientIdResponse expose_window_server_client_id() override; 45 46 HashMap<DeprecatedString, Core::File::OpenMode> m_approved_files; 47}; 48 49}