public Dictionary<string, string> ExecuteOperation(ITransport transport) { //Defines a new Dictonary which is capable of storing indexed string values with a string index. Dictionary<string, string> result; //Writes the request header HeaderParams param = WriteHeader(transport, STATS_REQUEST); transport.Flush(); ReadHeaderAndValidate(transport, param); //reads the number of statistic details sent from server int numberOfStats = transport.ReadVInt(); if (logger.IsTraceEnabled) logger.Trace("Number of Stats : " + numberOfStats); result = new Dictionary<string, string>(); //reads all statistics and add them to the 'result' dictionary for (int i = 0; i < numberOfStats; i++) { String statName = transport.ReadString(); if (logger.IsTraceEnabled) logger.Trace("Stat Name Recieved : " + statName); String statValue = transport.ReadString(); if (logger.IsTraceEnabled) logger.Trace("Stat ValueRecieved : " + statName); result.Add(statName, statValue); } return result; }
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); }