writable_event.cpp 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright 2014 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #include <algorithm>
  5. #include "common/assert.h"
  6. #include "core/hle/kernel/kernel.h"
  7. #include "core/hle/kernel/object.h"
  8. #include "core/hle/kernel/readable_event.h"
  9. #include "core/hle/kernel/thread.h"
  10. #include "core/hle/kernel/writable_event.h"
  11. namespace Kernel {
  12. WritableEvent::WritableEvent(KernelCore& kernel) : Object{kernel} {}
  13. WritableEvent::~WritableEvent() = default;
  14. EventPair WritableEvent::CreateEventPair(KernelCore& kernel, std::string name) {
  15. std::shared_ptr<WritableEvent> writable_event(new WritableEvent(kernel));
  16. std::shared_ptr<ReadableEvent> readable_event(new ReadableEvent(kernel));
  17. writable_event->name = name + ":Writable";
  18. writable_event->readable = readable_event;
  19. readable_event->name = name + ":Readable";
  20. return {std::move(readable_event), std::move(writable_event)};
  21. }
  22. std::shared_ptr<ReadableEvent> WritableEvent::GetReadableEvent() const {
  23. return readable;
  24. }
  25. void WritableEvent::Signal() {
  26. readable->Signal();
  27. }
  28. void WritableEvent::Clear() {
  29. readable->Clear();
  30. }
  31. bool WritableEvent::IsSignaled() const {
  32. return readable->IsSignaled();
  33. }
  34. } // namespace Kernel