private Peer ParsePeer() { Peer peer = new Peer(); parser.Expect('['); peer.nodeName = parser.ParseString(','); parser.offset++; peer.tlsName = tlsName = parser.ParseString(','); parser.offset++; peer.hosts = ParseHosts(); parser.Expect(']'); return(peer); }
public PeerParser(Cluster cluster, Connection conn, List <Peer> peers) { this.cluster = cluster; string command = (cluster.tlsPolicy != null) ? cluster.useServicesAlternate ? "peers-tls-alt" : "peers-tls-std" : cluster.useServicesAlternate ? "peers-clear-alt" : "peers-clear-std"; parser = new Info(conn, command); if (parser.length == 0) { throw new AerospikeException.Parse(command + " response is empty"); } parser.SkipToValue(); generation = parser.ParseInt(); parser.Expect(','); portDefault = parser.ParseInt(); parser.Expect(','); parser.Expect('['); // Reset peers peers.Clear(); if (parser.buffer[parser.offset] == ']') { return; } while (true) { Peer peer = ParsePeer(); peers.Add(peer); if (parser.offset < parser.length && parser.buffer[parser.offset] == ',') { parser.offset++; } else { break; } } }