Fixed comparison operators for net object pointers
This commit is contained in:
parent
26d807ce87
commit
4640158343
8 changed files with 62 additions and 18 deletions
|
|
@ -25,4 +25,8 @@ namespace NetworkingObjects {
|
|||
server = initServer;
|
||||
updateCommandID = initUpdateCommandID;
|
||||
}
|
||||
void NetObjManager::disconnect() {
|
||||
server = nullptr;
|
||||
client = nullptr;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ namespace NetworkingObjects {
|
|||
void read_update_message(cereal::PortableBinaryInputArchive& a, const std::shared_ptr<NetServer::ClientData>& clientReceivedFrom);
|
||||
void set_client(std::shared_ptr<NetClient> initClient, MessageCommandType initUpdateCommandID);
|
||||
void set_server(std::shared_ptr<NetServer> initServer, MessageCommandType initUpdateCommandID);
|
||||
void disconnect();
|
||||
bool is_server() const;
|
||||
template <typename T> NetObjOwnerPtr<T> read_create_message(cereal::PortableBinaryInputArchive& a, const std::shared_ptr<NetServer::ClientData>& clientReceivedFrom) {
|
||||
NetObjID id;
|
||||
|
|
|
|||
|
|
@ -21,7 +21,10 @@ namespace NetworkingObjects {
|
|||
std::add_lvalue_reference_t<T> operator*() const requires(!std::is_void_v<T>);
|
||||
T* operator->() const;
|
||||
operator bool() const;
|
||||
std::strong_ordering operator<=>(const NetObjOwnerPtr<T>& rhs) const;
|
||||
bool operator!=(const NetObjOwnerPtr<T>& rhs) const;
|
||||
bool operator==(const NetObjOwnerPtr<T>& rhs) const;
|
||||
bool operator!=(const NetObjTemporaryPtr<T>& rhs) const;
|
||||
bool operator==(const NetObjTemporaryPtr<T>& rhs) const;
|
||||
void send_client_update(const std::string& channel, std::function<void(const NetObjTemporaryPtr<T>&, cereal::PortableBinaryOutputArchive&)> sendUpdateFunc) const;
|
||||
void send_server_update_to_client(const std::shared_ptr<NetServer::ClientData>& clientToSendTo, const std::string& channel, std::function<void(const NetObjTemporaryPtr<T>&, cereal::PortableBinaryOutputArchive&)> sendUpdateFunc) const;
|
||||
void send_server_update_to_all_clients_except(const std::shared_ptr<NetServer::ClientData>& clientToNotSendTo, const std::string& channel, std::function<void(const NetObjTemporaryPtr<T>&, cereal::PortableBinaryOutputArchive&)> sendUpdateFunc) const;
|
||||
|
|
|
|||
|
|
@ -64,8 +64,20 @@ namespace NetworkingObjects {
|
|||
return rawPtr;
|
||||
}
|
||||
|
||||
template <typename T> std::strong_ordering NetObjOwnerPtr<T>::operator<=>(const NetObjOwnerPtr<T>& rhs) const {
|
||||
return rawPtr <=> rhs.rawPtr;
|
||||
template <typename T> bool NetObjOwnerPtr<T>::operator!=(const NetObjOwnerPtr<T>& rhs) const {
|
||||
return rawPtr != rhs.rawPtr;
|
||||
}
|
||||
|
||||
template <typename T> bool NetObjOwnerPtr<T>::operator==(const NetObjOwnerPtr<T>& rhs) const {
|
||||
return rawPtr == rhs.rawPtr;
|
||||
}
|
||||
|
||||
template <typename T> bool NetObjOwnerPtr<T>::operator!=(const NetObjTemporaryPtr<T>& rhs) const {
|
||||
return rawPtr != rhs.get();
|
||||
}
|
||||
|
||||
template <typename T> bool NetObjOwnerPtr<T>::operator==(const NetObjTemporaryPtr<T>& rhs) const {
|
||||
return rawPtr == rhs.get();
|
||||
}
|
||||
|
||||
template <typename T> void NetObjOwnerPtr<T>::send_client_update(const std::string& channel, std::function<void(const NetObjTemporaryPtr<T>&, cereal::PortableBinaryOutputArchive&)> sendUpdateFunc) const {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,10 @@ namespace NetworkingObjects {
|
|||
std::add_lvalue_reference_t<T> operator*() const requires(!std::is_void_v<T>);
|
||||
T* operator->() const;
|
||||
operator bool() const;
|
||||
std::strong_ordering operator<=>(const NetObjTemporaryPtr<T>& rhs) const;
|
||||
bool operator!=(const NetObjTemporaryPtr<T>& rhs) const;
|
||||
bool operator==(const NetObjTemporaryPtr<T>& rhs) const;
|
||||
bool operator!=(const NetObjOwnerPtr<T>& rhs) const;
|
||||
bool operator==(const NetObjOwnerPtr<T>& rhs) const;
|
||||
void send_client_update(const std::string& channel, std::function<void(const NetObjTemporaryPtr<T>&, cereal::PortableBinaryOutputArchive&)> sendUpdateFunc) const;
|
||||
void send_server_update_to_client(const std::shared_ptr<NetServer::ClientData>& clientToSendTo, const std::string& channel, std::function<void(const NetObjTemporaryPtr<T>&, cereal::PortableBinaryOutputArchive&)> sendUpdateFunc) const;
|
||||
void send_server_update_to_all_clients_except(const std::shared_ptr<NetServer::ClientData>& clientToNotSendTo, const std::string& channel, std::function<void(const NetObjTemporaryPtr<T>&, cereal::PortableBinaryOutputArchive&)> sendUpdateFunc) const;
|
||||
|
|
|
|||
|
|
@ -57,8 +57,20 @@ namespace NetworkingObjects {
|
|||
return rawPtr;
|
||||
}
|
||||
|
||||
template <typename T> std::strong_ordering NetObjTemporaryPtr<T>::operator<=>(const NetObjTemporaryPtr<T>& rhs) const {
|
||||
return rawPtr <=> rhs.rawPtr;
|
||||
template <typename T> bool NetObjTemporaryPtr<T>::operator!=(const NetObjTemporaryPtr<T>& rhs) const {
|
||||
return rawPtr != rhs.rawPtr;
|
||||
}
|
||||
|
||||
template <typename T> bool NetObjTemporaryPtr<T>::operator==(const NetObjTemporaryPtr<T>& rhs) const {
|
||||
return rawPtr == rhs.rawPtr;
|
||||
}
|
||||
|
||||
template <typename T> bool NetObjTemporaryPtr<T>::operator!=(const NetObjOwnerPtr<T>& rhs) const {
|
||||
return rawPtr != rhs.get();
|
||||
}
|
||||
|
||||
template <typename T> bool NetObjTemporaryPtr<T>::operator==(const NetObjOwnerPtr<T>& rhs) const {
|
||||
return rawPtr == rhs.get();
|
||||
}
|
||||
|
||||
template <typename T> void NetObjTemporaryPtr<T>::send_client_update(const std::string& channel, std::function<void(const NetObjTemporaryPtr<T>&, cereal::PortableBinaryOutputArchive&)> sendUpdateFunc) const {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue