Exemple #1
0
        internal void AddResponse(Common.Net.Address address, CommandResponse response)
        {
            _type = response.Type;



            lock (_responseMutex)
            {
                if (_responses.ContainsKey(address))
                {
                    if (!response.IsInternalResponse && response.NeedsDeserialization)
                    {
                        if (_rawResponses == null)
                        {
                            _rawResponses = new List <CommandResponse>();
                        }

                        _rawResponses.Add(response);
                    }
                    else
                    {
                        ResponseList responseList;
                        if (response.CommandID <= 0)
                        {
                            var responses = _responses[address];
                            foreach (var rsp in responses.Values)
                            {
                                if (!rsp.IsComplete())
                                {
                                    rsp.AddResponse(response);
                                    break;
                                }
                            }
                            return;
                        }


                        if (_responses[address].TryGetValue(response.CommandID, out responseList))
                        {
                            if (Connection.WriteRequestIdInResponse || !responseList.IsComplete())
                            {
                                responseList.AddResponse(response);
                            }
                        }
                    }
                }
            }
        }
Exemple #2
0
        internal void AddResponse(Common.Net.Address address, CommandResponse response)
        {
            _type = response.Type;

            lock (_responseMutex)
            {
                if (_responses.ContainsKey(address))
                {
                    ResponseList responseList;
                    if (_responses[address].TryGetValue(response.CommandID, out responseList))
                    {
                        if (!responseList.IsComplete)
                        {
                            responseList.AddResponse(response);
                        }
                    }
                }
            }
        }