Add set_post_sync_callback

This commit is contained in:
Yousef Khadadeh 2025-12-13 21:43:30 +03:00
parent 13e2d2c0bd
commit d2a0bfcda9

View file

@ -81,7 +81,7 @@ namespace NetworkingObjects {
typedef std::function<void(const NetObjOrderedListObjectInfoPtr<T>& objInfo)> InsertCallback;
typedef std::function<void(const NetObjOrderedListObjectInfoPtr<T>& objInfo)> EraseCallback;
typedef std::function<void(const NetObjOrderedListObjectInfoPtr<T>& objInfo, uint32_t oldPos)> MoveCallback;
typedef std::function<void()> PostCallback;
typedef std::function<void()> PostSyncCallback;
void set_insert_callback(const InsertCallback& func) {
insertCallback = func;
@ -92,6 +92,9 @@ namespace NetworkingObjects {
void set_move_callback(const MoveCallback& func) {
moveCallback = func;
}
void set_post_sync_callback(const PostSyncCallback& func) {
postSyncCallback = func;
}
virtual bool contains(const NetObjID& p) const = 0;
virtual uint32_t size() const = 0;
@ -132,15 +135,15 @@ namespace NetworkingObjects {
}
void call_post_sync_callback() {
if(postCallback)
postCallback();
if(postSyncCallback)
postSyncCallback();
}
private:
InsertCallback insertCallback;
EraseCallback eraseCallback;
MoveCallback moveCallback;
PostCallback postCallback;
PostSyncCallback postSyncCallback;
template <typename S> friend void register_ordered_list_class(NetObjManager& t);
static void write_constructor_func(const NetObjTemporaryPtr<NetObjOrderedList<T>>& l, cereal::PortableBinaryOutputArchive& a) {
l->write_constructor(l, a);