=== added file 'include/client/mir/client/event.h'
--- include/client/mir/client/event.h 1970-01-01 00:00:00 +0000
+++ include/client/mir/client/event.h 2017-09-25 18:10:00 +0000
@@ -0,0 +1,54 @@
+/*
+ * Copyright © 2017 Canonical Ltd.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 2 or 3 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ * Authored by: Christopher James Halse Rogers
+ */
+
+#ifndef MIR_CLIENT_EVENT_H_
+#define MIR_CLIENT_EVENT_H_
+
+#include "mir_toolkit/events/event.h"
+
+#include
+
+namespace mir
+{
+namespace client
+{
+/// Handle class for MirEvent - provides automatic reference counting.
+class Event
+{
+public:
+ Event() = default;
+ explicit Event(MirEvent const* event) : self{mir_event_ref(event), deleter}
+ {
+ }
+
+ operator MirEvent const*() const { return self.get(); }
+
+ void reset() { self.reset(); }
+
+private:
+ static void deleter(MirEvent const* event) { mir_event_unref(event); }
+ std::shared_ptr self;
+};
+
+// Provide a deleted overload to avoid double release "accidents".
+void mir_event_unref(Event const& event) = delete;
+}
+}
+
+#endif //MIR_CLIENT_EVENT_H_
+
=== modified file 'src/client/CMakeLists.txt'
--- src/client/CMakeLists.txt 2017-08-29 14:23:50 +0000
+++ src/client/CMakeLists.txt 2017-09-25 18:10:00 +0000
@@ -118,6 +118,7 @@
${CMAKE_SOURCE_DIR}/include/client/mir/client/connection.h
${CMAKE_SOURCE_DIR}/include/client/mir/client/display_config.h
${CMAKE_SOURCE_DIR}/include/client/mir/client/window.h
+ ${CMAKE_SOURCE_DIR}/include/client/mir/client/event.h
)
# Ensure protobuf C++ headers have been produced before