diff options
Diffstat (limited to 'Userland/Services/Clipboard/ConnectionFromClient.h')
-rw-r--r-- | Userland/Services/Clipboard/ConnectionFromClient.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/Userland/Services/Clipboard/ConnectionFromClient.h b/Userland/Services/Clipboard/ConnectionFromClient.h new file mode 100644 index 0000000000..94f23a07f1 --- /dev/null +++ b/Userland/Services/Clipboard/ConnectionFromClient.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include <AK/HashMap.h> +#include <Clipboard/ClipboardClientEndpoint.h> +#include <Clipboard/ClipboardServerEndpoint.h> +#include <LibIPC/ConnectionFromClient.h> + +namespace Clipboard { + +class ConnectionFromClient final + : public IPC::ConnectionFromClient<ClipboardClientEndpoint, ClipboardServerEndpoint> { + C_OBJECT(ConnectionFromClient); + +public: + virtual ~ConnectionFromClient() override; + + virtual void die() override; + + static void for_each_client(Function<void(ConnectionFromClient&)>); + + void notify_about_clipboard_change(); + +private: + explicit ConnectionFromClient(NonnullOwnPtr<Core::Stream::LocalSocket>, int client_id); + + virtual Messages::ClipboardServer::GetClipboardDataResponse get_clipboard_data() override; + virtual void set_clipboard_data(Core::AnonymousBuffer const&, String const&, IPC::Dictionary const&) override; +}; + +} |