summaryrefslogtreecommitdiff
path: root/Userland/Services/Clipboard/ConnectionFromClient.h
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Services/Clipboard/ConnectionFromClient.h')
-rw-r--r--Userland/Services/Clipboard/ConnectionFromClient.h36
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;
+};
+
+}