network.h 878 B

123456789101112131415161718192021222324252627282930313233
  1. // SPDX-FileCopyrightText: Copyright 2017 Citra Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <memory>
  5. #include "network/room.h"
  6. #include "network/room_member.h"
  7. namespace Network {
  8. class RoomNetwork {
  9. public:
  10. RoomNetwork();
  11. /// Initializes and registers the network device, the room, and the room member.
  12. bool Init();
  13. /// Returns a pointer to the room handle
  14. std::weak_ptr<Room> GetRoom();
  15. /// Returns a pointer to the room member handle
  16. std::weak_ptr<RoomMember> GetRoomMember();
  17. /// Unregisters the network device, the room, and the room member and shut them down.
  18. void Shutdown();
  19. private:
  20. std::shared_ptr<RoomMember> m_room_member; ///< RoomMember (Client) for network games
  21. std::shared_ptr<Room> m_room; ///< Room (Server) for network games
  22. };
  23. } // namespace Network