コード例 #1
0
        internal void UnpackEventDatagram(PoolEventPayload payload)
        {
            ushort typeID = payload.EventData.ReadUShort();
            SynchronisableEntity entity = EntityGenerator.GetEntityFactory(typeID).ConstructNewEntity(0);

            entity.ReadFromBuffer(payload.EventData, Context);
            RecievedEvents.Add(new SyncEvent(entity, entity.GetValue()));
        }
コード例 #2
0
        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);
        }