Exemplo n.º 1
0
        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);
        }