List of usage examples for com.google.common.hash PrimitiveSink putChar
PrimitiveSink putChar(char c);
From source file:com.eucalyptus.network.NetworkInfoBroadcaster.java
private static int fingerprint(final NetworkInfoSource source, final List<com.eucalyptus.cluster.Cluster> clusters, final Set<String> dirtyPublicAddresses, final String networkConfiguration) { final HashFunction hashFunction = goodFastHash(32); final Hasher hasher = hashFunction.newHasher(); final Funnel<VersionedNetworkView> versionedItemFunnel = new Funnel<VersionedNetworkView>() { @Override// w ww .j a v a 2s . c o m public void funnel(final VersionedNetworkView o, final PrimitiveSink primitiveSink) { primitiveSink.putString(o.getId()); primitiveSink.putChar('='); primitiveSink.putInt(o.getVersion()); } }; for (final Map.Entry<String, Iterable<? extends VersionedNetworkView>> entry : source.getView() .entrySet()) { hasher.putString(entry.getKey()); for (final VersionedNetworkView item : entry.getValue()) { hasher.putObject(item, versionedItemFunnel); } } hasher.putString(Joiner.on(',').join(Sets.newTreeSet(Iterables.transform(clusters, HasName.GET_NAME)))); hasher.putString(Joiner.on(',').join(Sets.newTreeSet(dirtyPublicAddresses))); hasher.putInt(networkConfiguration.hashCode()); return hasher.hash().asInt(); }
From source file:com.complexible.common.hash.ConcatenatedPrimitiveSink.java
/** * @inheritDoc/*w ww . j a v a 2s .c o m*/ */ @Override public PrimitiveSink putChar(final char theChar) { for (PrimitiveSink aSink : this) { aSink.putChar(theChar); } return this; }
From source file:iox.easycache.internal.AnyFunnel.java
@Override public void funnel(Object data, PrimitiveSink sink) { sink.putByte(MARK);//from w ww. jav a 2 s .c om if (data == null) sink.putByte(NUL); else if (data instanceof byte[]) sink.putBytes((byte[]) data); else if (data instanceof char[]) sink.putString(new CharArray((char[]) data), Util.UTF); else if (data instanceof String) sink.putString((String) data, Util.UTF); else if (data instanceof boolean[]) { for (boolean e : (boolean[]) data) sink.putBoolean(e); } else if (data instanceof short[]) { for (short e : (short[]) data) sink.putShort(e); } else if (data instanceof int[]) { for (int e : (int[]) data) sink.putInt(e); } else if (data instanceof long[]) { for (long e : (long[]) data) sink.putLong(e); } else if (data instanceof float[]) { for (float e : (float[]) data) sink.putFloat(e); } else if (data instanceof double[]) { for (double e : (double[]) data) sink.putDouble(e); } else if (data instanceof Object[]) { for (Object e : (Object[]) data) funnel(e, sink); } else if (data instanceof Boolean) sink.putBoolean((Boolean) data); else if (data instanceof Byte) sink.putByte((Byte) data); else if (data instanceof Character) sink.putChar((Character) data); else if (data instanceof Short) sink.putShort((Short) data); else if (data instanceof Integer) sink.putInt((Integer) data); else if (data instanceof Long) sink.putLong((Long) data); else if (data instanceof Float) sink.putFloat((Float) data); else if (data instanceof Double) sink.putDouble((Double) data); else { putObject(data, sink); } }
From source file:io.github.maxymania.powercache.hash.AnyFunnel.java
private void funnel(Object data, PrimitiveSink sink, int dept) { if (dept > 80) { sink.putByte(ONE);// w w w . j av a 2s . c om return; } sink.putByte(MARK); if (data == null) { sink.putByte(NUL); } else if (data instanceof byte[]) { sink.putBytes((byte[]) data); } else if (data instanceof char[]) { sink.putString(new CharArray((char[]) data), Util.UTF); } else if (data instanceof String) { sink.putString((String) data, Util.UTF); } else if (data instanceof boolean[]) { for (boolean e : (boolean[]) data) { sink.putBoolean(e); } } else if (data instanceof short[]) { for (short e : (short[]) data) { sink.putShort(e); } } else if (data instanceof int[]) { for (int e : (int[]) data) { sink.putInt(e); } } else if (data instanceof long[]) { for (long e : (long[]) data) { sink.putLong(e); } } else if (data instanceof float[]) { for (float e : (float[]) data) { sink.putFloat(e); } } else if (data instanceof double[]) { for (double e : (double[]) data) { sink.putDouble(e); } } else if (data instanceof Object[]) { for (Object e : (Object[]) data) { funnel(e, sink); } } else if (data instanceof Boolean) { sink.putBoolean((Boolean) data); } else if (data instanceof Byte) { sink.putByte((Byte) data); } else if (data instanceof Character) { sink.putChar((Character) data); } else if (data instanceof Short) { sink.putShort((Short) data); } else if (data instanceof Integer) { sink.putInt((Integer) data); } else if (data instanceof Long) { sink.putLong((Long) data); } else if (data instanceof Float) { sink.putFloat((Float) data); } else if (data instanceof Double) { sink.putDouble((Double) data); } else { putObject(data, sink, dept); } }