protected void _OnResponse(ServerToClientOpCode id, byte[] args) { if (id == ServerToClientOpCode.Ping) { Ping = _PingTimeCounter.Ticks; _StartPing(); } else if (id == ServerToClientOpCode.SetProperty) { PackageSetProperty data = args.ToPackageData <PackageSetProperty>(_Serializer); _UpdateSetProperty(data.EntityId, data.Property, data.Value); } else if (id == ServerToClientOpCode.InvokeEvent) { PackageInvokeEvent data = args.ToPackageData <PackageInvokeEvent>(_Serializer); _InvokeEvent(data.EntityId, data.Event, data.HandlerId, data.EventParams); } else if (id == ServerToClientOpCode.ErrorMethod) { PackageErrorMethod data = args.ToPackageData <PackageErrorMethod>(_Serializer); _ErrorReturnValue(data.ReturnTarget, data.Method, data.Message); } else if (id == ServerToClientOpCode.ReturnValue) { PackageReturnValue data = args.ToPackageData <PackageReturnValue>(_Serializer); _SetReturnValue(data.ReturnTarget, data.ReturnValue); } else if (id == ServerToClientOpCode.LoadSoulCompile) { PackageLoadSoulCompile data = args.ToPackageData <PackageLoadSoulCompile>(_Serializer); _LoadSoulCompile(data.TypeId, data.EntityId, data.ReturnId, data.PassageId); } else if (id == ServerToClientOpCode.LoadSoul) { PackageLoadSoul data = args.ToPackageData <PackageLoadSoul>(_Serializer); _LoadSoul(data.TypeId, data.EntityId, data.ReturnType); } else if (id == ServerToClientOpCode.UnloadSoul) { PackageUnloadSoul data = args.ToPackageData <PackageUnloadSoul>(_Serializer); _UnloadSoul(data.TypeId, data.EntityId, data.PassageId); } else if (id == ServerToClientOpCode.ProtocolSubmit) { PackageProtocolSubmit data = args.ToPackageData <PackageProtocolSubmit>(_Serializer); _ProtocolSubmit(data); } }
private void _Push(ServerToClientOpCode cmd, byte[] data) { if (_Enable) { System.Threading.Interlocked.Increment(ref _TotalResponse); _Responses.Enqueue( new ResponsePackage { Code = cmd, Data = data }); } }
private void _Empty(ServerToClientOpCode arg1, byte[] arg2) { }
void IResponseQueue.Push(ServerToClientOpCode cmd, byte[] data) { _Push(cmd, data); }
protected void _OnResponse(ServerToClientOpCode id, byte[] args) { switch (id) { case ServerToClientOpCode.Ping: Ping = _PingTimeCounter.Ticks; _StartPing(); break; case ServerToClientOpCode.UpdateProperty: { var data = args.ToPackageData <PackageUpdateProperty>(_Serializer); if (data == null) { throw new NullReferenceException("PackageUpdateProperty cast null"); } _UpdateProperty(data.PropertyId, data.EntityId, data.Args); } break; case ServerToClientOpCode.InvokeEvent: { var data = args.ToPackageData <PackageInvokeEvent>(_Serializer); if (data == null) { throw new NullReferenceException("PackageInvokeEvent cast null"); } _InvokeEvent(data.EntityId, data.EventId, data.EventParams); } break; case ServerToClientOpCode.ErrorMethod: { var data = args.ToPackageData <PackageErrorMethod>(_Serializer); if (data == null) { throw new NullReferenceException("PackageErrorMethod cast null"); } _ErrorReturnValue(data.ReturnTarget, data.Method, data.Message); } break; case ServerToClientOpCode.ReturnValue: { var data = args.ToPackageData <PackageReturnValue>(_Serializer); if (data == null) { throw new NullReferenceException("PackageReturnValue cast null"); } _SetReturnValue(data.ReturnTarget, data.ReturnValue); } break; case ServerToClientOpCode.LoadSoulCompile: { var data = args.ToPackageData <PackageLoadSoulCompile>(_Serializer); if (data == null) { throw new NullReferenceException("PackageLoadSoulCompile cast null"); } _LoadSoulCompile(data.TypeId, data.EntityId, data.ReturnId); } break; case ServerToClientOpCode.LoadSoul: { var data = args.ToPackageData <PackageLoadSoul>(_Serializer); if (data == null) { throw new NullReferenceException("PackageLoadSoul cast null"); } _LoadSoul(data.TypeId, data.EntityId, data.ReturnType); } break; case ServerToClientOpCode.UnloadSoul: { var data = args.ToPackageData <PackageUnloadSoul>(_Serializer); if (data == null) { throw new NullReferenceException("PackageUnloadSoul cast null"); } _UnloadSoul(data.TypeId, data.EntityId); } break; case ServerToClientOpCode.ProtocolSubmit: { var data = args.ToPackageData <PackageProtocolSubmit>(_Serializer); if (data == null) { throw new NullReferenceException("PackageProtocolSubmit cast null"); } } break; default: throw new ArgumentOutOfRangeException(nameof(id), id, null); } }
public void OnResponse(ServerToClientOpCode id, byte[] args) { _OnResponse(id, args); _AutoRelease.Update(); }
public static void ServerToClient <T>(this Regulus.Remote.PackageWriter <ResponsePackage> writer, Regulus.Serialization.ISerializer serializer, ServerToClientOpCode opcode, T instance) { ResponsePackage pkg = new ResponsePackage(); pkg.Code = opcode; pkg.Data = serializer.Serialize(instance); writer.Push(new[] { pkg }); }
public static byte[] ServerToClient <T>(this Regulus.Serialization.ISerializer serializer, ServerToClientOpCode opcode, T instance) { ResponsePackage pkg = new Regulus.Remote.ResponsePackage() { Code = opcode, Data = serializer.Serialize(instance) }; return(serializer.Serialize(pkg)); }
void IResponseQueue.Push(ServerToClientOpCode cmd, byte[] data) { lock(Peer._LockResponse) { if (_Enable) { Peer.TotalResponse++; _Responses.Enqueue( new ResponsePackage { Code = cmd, Data = data }); } } }