EventLoopImplementation.cpp 919 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * Copyright (c) 2023, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <AK/NonnullOwnPtr.h>
  7. #include <LibCore/Event.h>
  8. #include <LibCore/EventLoopImplementation.h>
  9. #include <LibCore/EventLoopImplementationUnix.h>
  10. #include <LibCore/ThreadEventQueue.h>
  11. namespace Core {
  12. EventLoopImplementation::EventLoopImplementation()
  13. : m_thread_event_queue(ThreadEventQueue::current())
  14. {
  15. }
  16. EventLoopImplementation::~EventLoopImplementation() = default;
  17. static EventLoopManager* s_event_loop_manager;
  18. EventLoopManager& EventLoopManager::the()
  19. {
  20. if (!s_event_loop_manager)
  21. s_event_loop_manager = new EventLoopManagerUnix;
  22. return *s_event_loop_manager;
  23. }
  24. void EventLoopManager::install(Core::EventLoopManager& manager)
  25. {
  26. s_event_loop_manager = &manager;
  27. }
  28. EventLoopManager::EventLoopManager() = default;
  29. EventLoopManager::~EventLoopManager() = default;
  30. }