Permalink
Browse files

Formatted code.

Change-Id: Ib5700f44129e5be33fee86f05b153527f66e9c01
Reviewed-on: http://review.couchbase.org/8644
Reviewed-by: Michael Wiederhold <mike@couchbase.com>
Tested-by: Michael Wiederhold <mike@couchbase.com>
  • Loading branch information...
1 parent b406daa commit fd7ce14565b3243ac630bd39b2c147eaa4e35289 Mike Wiederhold committed with mikewied Aug 4, 2011
Showing 313 changed files with 34,722 additions and 30,702 deletions.
@@ -1,3 +1,26 @@
+/**
+ * Copyright (C) 2006-2009 Dustin Sallings
+ * Copyright (C) 2009-2011 Couchbase, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALING
+ * IN THE SOFTWARE.
+ */
+
package net.spy.memcached;
import java.net.InetSocketAddress;
@@ -7,66 +30,66 @@
/**
* Convenience utilities for simplifying common address parsing.
*/
-public class AddrUtil {
-
- /**
- * Split a string containing whitespace or comma separated host or
- * IP addresses and port numbers of the form "host:port host2:port"
- * or "host:port, host2:port" into a List of InetSocketAddress
- * instances suitable for instantiating a MemcachedClient.
- *
- * Note that colon-delimited IPv6 is also supported.
- * For example: ::1:11211
- */
- public static List<InetSocketAddress> getAddresses(String s) {
- if(s == null) {
- throw new NullPointerException("Null host list");
- }
- if(s.trim().equals("")) {
- throw new IllegalArgumentException("No hosts in list: ``"
- + s + "''");
- }
- ArrayList<InetSocketAddress> addrs=
- new ArrayList<InetSocketAddress>();
+public final class AddrUtil {
- for(String hoststuff : s.split("(?:\\s|,)+")) {
- if(hoststuff.equals("")) {
- continue;
- }
+ private AddrUtil() {
+ // Empty
+ }
- int finalColon=hoststuff.lastIndexOf(':');
- if(finalColon < 1) {
- throw new IllegalArgumentException("Invalid server ``"
- + hoststuff + "'' in list: " + s);
+ /**
+ * Split a string containing whitespace or comma separated host or IP
+ * addresses and port numbers of the form "host:port host2:port" or
+ * "host:port, host2:port" into a List of InetSocketAddress instances suitable
+ * for instantiating a MemcachedClient.
+ *
+ * Note that colon-delimited IPv6 is also supported. For example: ::1:11211
+ */
+ public static List<InetSocketAddress> getAddresses(String s) {
+ if (s == null) {
+ throw new NullPointerException("Null host list");
+ }
+ if (s.trim().equals("")) {
+ throw new IllegalArgumentException("No hosts in list: ``" + s + "''");
+ }
+ ArrayList<InetSocketAddress> addrs = new ArrayList<InetSocketAddress>();
- }
- String hostPart=hoststuff.substring(0, finalColon);
- String portNum=hoststuff.substring(finalColon+1);
+ for (String hoststuff : s.split("(?:\\s|,)+")) {
+ if (hoststuff.equals("")) {
+ continue;
+ }
- addrs.add(new InetSocketAddress(hostPart,
- Integer.parseInt(portNum)));
- }
- assert !addrs.isEmpty() : "No addrs found";
- return addrs;
- }
+ int finalColon = hoststuff.lastIndexOf(':');
+ if (finalColon < 1) {
+ throw new IllegalArgumentException("Invalid server ``" + hoststuff
+ + "'' in list: " + s);
+ }
+ String hostPart = hoststuff.substring(0, finalColon);
+ String portNum = hoststuff.substring(finalColon + 1);
- public static List<InetSocketAddress> getAddresses(List<String> servers) {
- ArrayList<InetSocketAddress> addrs = new ArrayList<InetSocketAddress>(servers.size());
- for (String server : servers) {
- int finalColon=server.lastIndexOf(':');
- if(finalColon < 1) {
- throw new IllegalArgumentException("Invalid server ``"
- + server + "'' in list: " + server);
- }
- String hostPart=server.substring(0, finalColon);
- String portNum=server.substring(finalColon+1);
+ addrs.add(new InetSocketAddress(hostPart, Integer.parseInt(portNum)));
+ }
+ assert !addrs.isEmpty() : "No addrs found";
+ return addrs;
+ }
- addrs.add(new InetSocketAddress(hostPart, Integer.parseInt(portNum)));
- }
- if (addrs.isEmpty()) {
- throw new IllegalArgumentException("servers cannot be empty"); //servers was passed in empty, and shouldn't have been
- }
- return addrs;
+ public static List<InetSocketAddress> getAddresses(List<String> servers) {
+ ArrayList<InetSocketAddress> addrs =
+ new ArrayList<InetSocketAddress>(servers.size());
+ for (String server : servers) {
+ int finalColon = server.lastIndexOf(':');
+ if (finalColon < 1) {
+ throw new IllegalArgumentException("Invalid server ``" + server
+ + "'' in list: " + server);
+ }
+ String hostPart = server.substring(0, finalColon);
+ String portNum = server.substring(finalColon + 1);
- }
+ addrs.add(new InetSocketAddress(hostPart, Integer.parseInt(portNum)));
+ }
+ if (addrs.isEmpty()) {
+ // servers was passed in empty, and shouldn't have been
+ throw new IllegalArgumentException("servers cannot be empty");
+ }
+ return addrs;
+ }
}
@@ -1,112 +1,133 @@
+/**
+ * Copyright (C) 2006-2009 Dustin Sallings
+ * Copyright (C) 2009-2011 Couchbase, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALING
+ * IN THE SOFTWARE.
+ */
+
package net.spy.memcached;
-import net.spy.memcached.vbucket.config.Config;
-
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
+import net.spy.memcached.vbucket.config.Config;
+
/**
* NodeLocator implementation for dealing with simple array lookups using a
* modulus of the hash code and node list length.
*/
public final class ArrayModNodeLocator implements NodeLocator {
- private MemcachedNode[] nodes;
-
- private final HashAlgorithm hashAlg;
-
- /**
- * Construct an ArraymodNodeLocator over the given array of nodes and
- * using the given hash algorithm.
- *
- * @param n the array of nodes
- * @param alg the hash algorithm
- */
- public ArrayModNodeLocator(List<MemcachedNode> n, HashAlgorithm alg) {
- super();
- nodes=n.toArray(new MemcachedNode[n.size()]);
- hashAlg=alg;
- }
-
- private ArrayModNodeLocator(MemcachedNode[] n, HashAlgorithm alg) {
- super();
- nodes=n;
- hashAlg=alg;
- }
-
- public Collection<MemcachedNode> getAll() {
- return Arrays.asList(nodes);
- }
-
- public MemcachedNode getPrimary(String k) {
- return nodes[getServerForKey(k)];
- }
-
- public Iterator<MemcachedNode> getSequence(String k) {
- return new NodeIterator(getServerForKey(k));
- }
-
- public NodeLocator getReadonlyCopy() {
- MemcachedNode[] n=new MemcachedNode[nodes.length];
- for(int i=0; i<nodes.length; i++) {
- n[i] = new MemcachedNodeROImpl(nodes[i]);
- }
- return new ArrayModNodeLocator(n, hashAlg);
- }
-
- @Override
- public void updateLocator(List<MemcachedNode> nodes, Config conf) {
- this.nodes=nodes.toArray(new MemcachedNode[nodes.size()]);
- }
-
- private int getServerForKey(String key) {
- int rv=(int)(hashAlg.hash(key) % nodes.length);
- assert rv >= 0 : "Returned negative key for key " + key;
- assert rv < nodes.length
- : "Invalid server number " + rv + " for key " + key;
- return rv;
- }
-
- class NodeIterator implements Iterator<MemcachedNode> {
-
- private final int start;
- private int next=0;
-
- public NodeIterator(int keyStart) {
- start=keyStart;
- next=start;
- computeNext();
- assert next >= 0 || nodes.length == 1
- : "Starting sequence at " + start + " of "
- + nodes.length + " next is " + next;
- }
-
- public boolean hasNext() {
- return next >= 0;
- }
-
- private void computeNext() {
- if(++next >= nodes.length) {
- next=0;
- }
- if(next == start) {
- next=-1;
- }
- }
-
- public MemcachedNode next() {
- try {
- return nodes[next];
- } finally {
- computeNext();
- }
- }
-
- public void remove() {
- throw new UnsupportedOperationException("Can't remove a node");
- }
-
- }
+ private final HashAlgorithm hashAlg;
+
+ private MemcachedNode[] nodes;
+
+ /**
+ * Construct an ArraymodNodeLocator over the given array of nodes and using
+ * the given hash algorithm.
+ *
+ * @param n the array of nodes
+ * @param alg the hash algorithm
+ */
+ public ArrayModNodeLocator(List<MemcachedNode> n, HashAlgorithm alg) {
+ super();
+ nodes = n.toArray(new MemcachedNode[n.size()]);
+ hashAlg = alg;
+ }
+
+ private ArrayModNodeLocator(MemcachedNode[] n, HashAlgorithm alg) {
+ super();
+ nodes = n;
+ hashAlg = alg;
+ }
+
+ public Collection<MemcachedNode> getAll() {
+ return Arrays.asList(nodes);
+ }
+
+ public MemcachedNode getPrimary(String k) {
+ return nodes[getServerForKey(k)];
+ }
+
+ public Iterator<MemcachedNode> getSequence(String k) {
+ return new NodeIterator(getServerForKey(k));
+ }
+
+ public NodeLocator getReadonlyCopy() {
+ MemcachedNode[] n = new MemcachedNode[nodes.length];
+ for (int i = 0; i < nodes.length; i++) {
+ n[i] = new MemcachedNodeROImpl(nodes[i]);
+ }
+ return new ArrayModNodeLocator(n, hashAlg);
+ }
+
+ @Override
+ public void updateLocator(List<MemcachedNode> newNodes, Config conf) {
+ this.nodes = newNodes.toArray(new MemcachedNode[newNodes.size()]);
+ }
+
+ private int getServerForKey(String key) {
+ int rv = (int) (hashAlg.hash(key) % nodes.length);
+ assert rv >= 0 : "Returned negative key for key " + key;
+ assert rv < nodes.length : "Invalid server number " + rv + " for key "
+ + key;
+ return rv;
+ }
+
+ class NodeIterator implements Iterator<MemcachedNode> {
+
+ private final int start;
+ private int next = 0;
+
+ public NodeIterator(int keyStart) {
+ start = keyStart;
+ next = start;
+ computeNext();
+ assert next >= 0 || nodes.length == 1 : "Starting sequence at " + start
+ + " of " + nodes.length + " next is " + next;
+ }
+
+ public boolean hasNext() {
+ return next >= 0;
+ }
+
+ private void computeNext() {
+ if (++next >= nodes.length) {
+ next = 0;
+ }
+ if (next == start) {
+ next = -1;
+ }
+ }
+
+ public MemcachedNode next() {
+ try {
+ return nodes[next];
+ } finally {
+ computeNext();
+ }
+ }
+
+ public void remove() {
+ throw new UnsupportedOperationException("Can't remove a node");
+ }
+ }
}
Oops, something went wrong.

0 comments on commit fd7ce14

Please sign in to comment.