summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/k_writable_event.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/kernel/k_writable_event.h')
-rw-r--r--src/core/hle/kernel/k_writable_event.h40
1 files changed, 12 insertions, 28 deletions
diff --git a/src/core/hle/kernel/k_writable_event.h b/src/core/hle/kernel/k_writable_event.h
index ad5514b52..518f5448d 100644
--- a/src/core/hle/kernel/k_writable_event.h
+++ b/src/core/hle/kernel/k_writable_event.h
@@ -4,37 +4,21 @@
#pragma once
-#include <memory>
-
#include "core/hle/kernel/object.h"
+#include "core/hle/result.h"
namespace Kernel {
class KernelCore;
-class KReadableEvent;
-class KWritableEvent;
-
-struct EventPair {
- std::shared_ptr<KReadableEvent> readable;
- std::shared_ptr<KWritableEvent> writable;
-};
+class KEvent;
class KWritableEvent final : public Object {
public:
+ explicit KWritableEvent(KernelCore& kernel, std::string&& name);
~KWritableEvent() override;
- /**
- * Creates an event
- * @param kernel The kernel instance to create this event under.
- * @param name Optional name of event
- */
- static EventPair CreateEventPair(KernelCore& kernel, std::string name = "Unknown");
-
std::string GetTypeName() const override {
- return "WritableEvent";
- }
- std::string GetName() const override {
- return name;
+ return "KWritableEvent";
}
static constexpr HandleType HANDLE_TYPE = HandleType::WritableEvent;
@@ -42,19 +26,19 @@ public:
return HANDLE_TYPE;
}
- std::shared_ptr<KReadableEvent> GetReadableEvent() const;
-
- void Signal();
- void Clear();
+ void Initialize(KEvent* parent_);
void Finalize() override {}
-private:
- explicit KWritableEvent(KernelCore& kernel);
+ ResultCode Signal();
+ ResultCode Clear();
- std::shared_ptr<KReadableEvent> readable;
+ KEvent* GetParent() const {
+ return parent;
+ }
- std::string name; ///< Name of event (optional)
+private:
+ KEvent* parent{};
};
} // namespace Kernel