public void AddEvent(object instance, bool guaranteeReceipt = true, bool urgent = true) { SynchronisableEntity entity = EntityGenerator.GetEntityFactory(instance.GetType().TypeHandle).ConstructForExisting(instance); entity.TrackChanges(instance, Context); int size = entity.WriteToBufferSize() + sizeof(ushort); PoolEventPayload payload = PoolEventPayload.Generate(PoolID, size, guaranteeReceipt, urgent); payload.EventData.WriteUShort(entity.TypeID); entity.WriteToBuffer(payload.EventData); BroadcastPayload(payload); }