public void ReadNewTopologyAndHash(ITransport transport, HeaderParams param, OperationsFactory opFac, HotRodOperation op) { int newTopologyId = transport.ReadVInt(); cacheManager.SetTopologyId(newTopologyId); int numOfServers = transport.ReadVInt(); if (logger.IsTraceEnabled) { logger.Trace("Topology change request: newTopologyId= " + newTopologyId + " numOfServers= " + numOfServers); } List<Tuple<string, int>> newServerList = new List<Tuple<string, int>>(); for (int i = 0; i < numOfServers; i++) { string host = transport.ReadString(); //int hostIPLength will be read inside the ReadString Method. int port = transport.ReadUnsignedShort(); if (logger.IsTraceEnabled) { logger.Trace("Server read : " + host + ":" + port); } Tuple<string, int> newServer = new Tuple<string, int>(host, port); newServerList.Add(newServer); } transport.GetTransportFactory().UpdateServers(newServerList); }