summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/event.h
diff options
context:
space:
mode:
authorYuri Kunde Schlesner <yuriks@yuriks.net>2015-01-23 06:11:25 +0100
committerYuri Kunde Schlesner <yuriks@yuriks.net>2015-01-30 14:49:43 +0100
commitd52d85993683a6948285801ab54d51c79c98afba (patch)
tree98b4d084c26198ad4bb8a0d8fd84f1a411a32ff6 /src/core/hle/kernel/event.h
parentKernel: Convert Timer to (mostly) not use Handles (diff)
downloadyuzu-d52d85993683a6948285801ab54d51c79c98afba.tar
yuzu-d52d85993683a6948285801ab54d51c79c98afba.tar.gz
yuzu-d52d85993683a6948285801ab54d51c79c98afba.tar.bz2
yuzu-d52d85993683a6948285801ab54d51c79c98afba.tar.lz
yuzu-d52d85993683a6948285801ab54d51c79c98afba.tar.xz
yuzu-d52d85993683a6948285801ab54d51c79c98afba.tar.zst
yuzu-d52d85993683a6948285801ab54d51c79c98afba.zip
Diffstat (limited to 'src/core/hle/kernel/event.h')
-rw-r--r--src/core/hle/kernel/event.h51
1 files changed, 30 insertions, 21 deletions
diff --git a/src/core/hle/kernel/event.h b/src/core/hle/kernel/event.h
index c08b12ee1..47420b157 100644
--- a/src/core/hle/kernel/event.h
+++ b/src/core/hle/kernel/event.h
@@ -11,26 +11,35 @@
namespace Kernel {
-/**
- * Signals an event
- * @param handle Handle to event to signal
- * @return Result of operation, 0 on success, otherwise error code
- */
-ResultCode SignalEvent(const Handle handle);
-
-/**
- * Clears an event
- * @param handle Handle to event to clear
- * @return Result of operation, 0 on success, otherwise error code
- */
-ResultCode ClearEvent(Handle handle);
-
-/**
- * Creates an event
- * @param reset_type ResetType describing how to create event
- * @param name Optional name of event
- * @return Handle to newly created Event object
- */
-Handle CreateEvent(const ResetType reset_type, const std::string& name="Unknown");
+class Event : public WaitObject {
+public:
+ /**
+ * Creates an event
+ * @param reset_type ResetType describing how to create event
+ * @param name Optional name of event
+ */
+ static ResultVal<SharedPtr<Event>> Create(ResetType reset_type, std::string name = "Unknown");
+
+ std::string GetTypeName() const override { return "Event"; }
+ std::string GetName() const override { return name; }
+
+ static const HandleType HANDLE_TYPE = HandleType::Event;
+ HandleType GetHandleType() const override { return HANDLE_TYPE; }
+
+ ResetType intitial_reset_type; ///< ResetType specified at Event initialization
+ ResetType reset_type; ///< Current ResetType
+
+ bool signaled; ///< Whether the event has already been signaled
+ std::string name; ///< Name of event (optional)
+
+ bool ShouldWait() override;
+ void Acquire() override;
+
+ void Signal();
+ void Clear();
+
+private:
+ Event() = default;
+};
} // namespace