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;
            }
예제 #2
0
        /// <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();
 }