| | |
| | |
| |
|
| | #include "common/assert.h" |
| | #include "common/logging/log.h" |
| | #include "enet/enet.h" |
| | #include "network/network.h" |
| |
|
| | namespace Network { |
| |
|
| | RoomNetwork::RoomNetwork() { |
| | m_room = std::make_shared<Room>(); |
| | m_room_member = std::make_shared<RoomMember>(); |
| | } |
| |
|
| | bool RoomNetwork::Init() { |
| | if (enet_initialize() != 0) { |
| | LOG_ERROR(Network, "Error initializing ENet"); |
| | return false; |
| | } |
| | m_room = std::make_shared<Room>(); |
| | m_room_member = std::make_shared<RoomMember>(); |
| | LOG_DEBUG(Network, "initialized OK"); |
| | return true; |
| | } |
| |
|
| | std::weak_ptr<Room> RoomNetwork::GetRoom() { |
| | return m_room; |
| | } |
| |
|
| | std::weak_ptr<RoomMember> RoomNetwork::GetRoomMember() { |
| | return m_room_member; |
| | } |
| |
|
| | void RoomNetwork::Shutdown() { |
| | if (m_room_member) { |
| | if (m_room_member->IsConnected()) |
| | m_room_member->Leave(); |
| | m_room_member.reset(); |
| | } |
| | if (m_room) { |
| | if (m_room->GetState() == Room::State::Open) |
| | m_room->Destroy(); |
| | m_room.reset(); |
| | } |
| | enet_deinitialize(); |
| | LOG_DEBUG(Network, "shutdown OK"); |
| | } |
| |
|
| | } |
| |
|