public ClientPacketRequesterNetworked(ClientPacketRequestDelegate <TSend, TReceive> callback, ClientPacketManagerNetworked manager, INetworkPacketFactory <TSend> sendFactory, INetworkPacketFactory <TReceive> receiveFactory, string uniqueName) { this.callback = callback; this.manager = manager; this.sendFactory = sendFactory; this.receiveFactory = receiveFactory; this.uniqueName = uniqueName; networkID = -1; nextRequestID = 2; }
/// <summary> /// This creates a requester, that uses given callback for processing remote requests /// TODO: WARNING: not completely implemented /// </summary> /// <typeparam name="TSend"></typeparam> /// <typeparam name="TReceive"></typeparam> /// <param name="sendFactory"></param> /// <param name="receiveFactory"></param> /// <param name="callback"></param> /// <param name="flags"></param> /// <returns></returns> public IClientPacketRequester <TSend, TReceive> CreatePacketRequester <TSend, TReceive>(string uniqueName, INetworkPacketFactory <TSend> sendFactory, INetworkPacketFactory <TReceive> receiveFactory, ClientPacketRequestDelegate <TSend, TReceive> callback, PacketFlags flags) where TReceive : INetworkPacket where TSend : INetworkPacket { ClientPacketRequesterNetworked <TSend, TReceive> requester = new ClientPacketRequesterNetworked <TSend, TReceive>(callback, this, sendFactory, receiveFactory, uniqueName); if ((flags & PacketFlags.TCP) == PacketFlags.None) { throw new NotImplementedException("Only TCP is currently supported!"); } if (packetTransportersMap.ContainsKey(uniqueName)) { throw new InvalidOperationException("Already constains smth with uniqueName!"); } packetTransportersMap[requester.UniqueName] = requester; packetTransporters.Add(requester); return(requester); }
public IClientPacketRequester <TSend, TReceive> CreatePacketRequester <TSend, TReceive>(string uniqueName, INetworkPacketFactory <TSend> sendFactory, INetworkPacketFactory <TReceive> receiveFactory, ClientPacketRequestDelegate <TSend, TReceive> callback, PacketFlags flags) where TSend : INetworkPacket where TReceive : INetworkPacket { throw new NotImplementedException(); }