#include "NetObjManager.hpp" #include "NetObjTemporaryPtr.hpp" namespace NetworkingObjects { NetObjManager::NetObjManager(bool initIsServer): isServer(initIsServer), nextTypeID(0) {} bool NetObjManager::is_server() const { return isServer; } void NetObjManager::read_update_message(cereal::PortableBinaryInputArchive& a, const std::shared_ptr& clientReceivedFrom) { NetObjID id; a(id); auto it = objectData.find(id); if(it == objectData.end()) return; typeList.get_net_type_data(isServer, it->second.netTypeID).readUpdateFunc(NetObjTemporaryPtr(this, id, it->second.p), a, clientReceivedFrom); } void NetObjManager::set_client(std::shared_ptr initClient, MessageCommandType initUpdateCommandID) { client = initClient; updateCommandID = initUpdateCommandID; } void NetObjManager::set_server(std::shared_ptr initServer, MessageCommandType initUpdateCommandID) { server = initServer; updateCommandID = initUpdateCommandID; } void NetObjManager::disconnect() { server = nullptr; client = nullptr; } }