public static void BuildResponse(IDictionary <string, IList <object> > getResult, int commandVersion, string requestStringId, IList serializedResponse, int commandId, Cache cache) { Util.KeyPackageBuilder.Cache = cache; int numberOfChunks = 0; int sequenceId = 1; long requestId = Convert.ToInt64(requestStringId); HashVector <string, ClusteredList <List <Message> > > resultInChunks = new HashVector <string, ClusteredList <List <Message> > >(); foreach (var pair in getResult) { var messageListChunks = Util.KeyPackageBuilder.GetMessages(pair.Value); if (resultInChunks.ContainsKey(pair.Key)) { ClusteredList <List <Message> > messageList = resultInChunks[pair.Key]; messageList.AddRange(messageListChunks); } else { resultInChunks.Add(pair.Key, messageListChunks); } numberOfChunks += messageListChunks.Count; } Response response = new Response(); response.requestId = requestId; response.commandID = commandId; response.responseType = Response.Type.GET_MESSAGE; GetMessageResponse getMessageResponse = null; if (resultInChunks.Count == 0) { getMessageResponse = new GetMessageResponse(); response.getMessageResponse = getMessageResponse; serializedResponse.Add(Common.Util.ResponseHelper.SerializeResponse(response)); return; } getMessageResponse = new GetMessageResponse(); foreach (var pair in resultInChunks) { TopicMessages topicMessage = new TopicMessages(); topicMessage.topic = pair.Key; for (int i = 0; i < pair.Value.Count; i++) { topicMessage.messageList.AddRange(pair.Value[i]); } getMessageResponse.topicMessages.Add(topicMessage); } response.getMessageResponse = getMessageResponse; serializedResponse.Add(Common.Util.ResponseHelper.SerializeResponse(response)); }
public static void BuildResponse(IDictionary <string, IList <object> > getResult, int commandVersion, string requestStringId, IList serializedResponse, int commandId, long requestID, NCache nCache, string _clientID, ClientManager clientManager) { Util.KeyPackageBuilder.Cache = nCache.Cache; int numberOfChunks = 0; int sequenceId = 1; long requestId = Convert.ToInt64(requestStringId); HashVector <string, ClusteredList <List <Message> > > resultInChunks = new HashVector <string, ClusteredList <List <Message> > >(); foreach (var pair in getResult) { var messageListChunks = Util.KeyPackageBuilder.GetMessages(pair.Value, nCache, _clientID); if (resultInChunks.ContainsKey(pair.Key)) { ClusteredList <List <Message> > messageList = resultInChunks[pair.Key]; messageList.AddRange(messageListChunks); } else { resultInChunks.Add(pair.Key, messageListChunks); } numberOfChunks += messageListChunks.Count; } GetMessageResponse getMessageResponse = new GetMessageResponse(); if (clientManager.ClientVersion >= 5000) { Common.Util.ResponseHelper.SetResponse(getMessageResponse, requestID, commandId); if (resultInChunks.Count == 0) { serializedResponse.Add(Common.Util.ResponseHelper.SerializeResponse(getMessageResponse, Common.Protobuf.Response.Type.GET_MESSAGE)); return; } foreach (var pair in resultInChunks) { //response.sequenceId = sequenceId++; TopicMessages topicMessage = new TopicMessages(); topicMessage.topic = pair.Key; for (int i = 0; i < pair.Value.Count; i++) { topicMessage.messageList.AddRange(pair.Value[i]); } getMessageResponse.topicMessages.Add(topicMessage); } serializedResponse.Add(Common.Util.ResponseHelper.SerializeResponse(getMessageResponse, Common.Protobuf.Response.Type.GET_MESSAGE)); } else { Response response = new Response(); Common.Util.ResponseHelper.SetResponse(response, requestID, commandId, Common.Protobuf.Response.Type.GET_MESSAGE); if (resultInChunks.Count == 0) { response.getMessageResponse = getMessageResponse; serializedResponse.Add(Alachisoft.NCache.Common.Util.ResponseHelper.SerializeResponse(response)); return; } foreach (var pair in resultInChunks) { //response.sequenceId = sequenceId++; TopicMessages topicMessage = new TopicMessages(); topicMessage.topic = pair.Key; for (int i = 0; i < pair.Value.Count; i++) { topicMessage.messageList.AddRange(pair.Value[i]); } getMessageResponse.topicMessages.Add(topicMessage); } response.getMessageResponse = getMessageResponse; serializedResponse.Add(Alachisoft.NCache.Common.Util.ResponseHelper.SerializeResponse(response)); } }