@Override public Writable newInstance() { return new ProtocolSignature(); } });
/** * Get a server protocol's signature * * @param clientMethodsHashCode client protocol methods hashcode * @param serverVersion server protocol version * @param protocol protocol * @return the server's protocol signature */ public static ProtocolSignature getProtocolSignature( int clientMethodsHashCode, long serverVersion, Class<? extends VersionedProtocol> protocol) { // try to get the finger print & signature from the cache ProtocolSigFingerprint sig = getSigFingerprint(protocol, serverVersion); // check if the client side protocol matches the one on the server side if (clientMethodsHashCode == sig.fingerprint) { return new ProtocolSignature(serverVersion, null); // null indicates a match } return sig.signature; }
/** * Return a protocol's signature and finger print from cache * * @param protocol a protocol class * @param serverVersion protocol version * @return its signature and finger print */ private static ProtocolSigFingerprint getSigFingerprint( Class <?> protocol, long serverVersion) { String protocolName = RPC.getProtocolName(protocol); synchronized (PROTOCOL_FINGERPRINT_CACHE) { ProtocolSigFingerprint sig = PROTOCOL_FINGERPRINT_CACHE.get(protocolName); if (sig == null) { int[] serverMethodHashcodes = getFingerprints(protocol.getMethods()); sig = new ProtocolSigFingerprint( new ProtocolSignature(serverVersion, serverMethodHashcodes), getFingerprint(serverMethodHashcodes)); PROTOCOL_FINGERPRINT_CACHE.put(protocolName, sig); } return sig; } }
private static Map<Long, ProtocolSignature> convertProtocolSignatureProtos(List<ProtocolSignatureProto> protoList) { Map<Long, ProtocolSignature> map = new TreeMap<Long, ProtocolSignature>(); for (ProtocolSignatureProto p : protoList) { int [] methods = new int[p.getMethodsList().size()]; int index=0; for (int m : p.getMethodsList()) { methods[index++] = m; } map.put(p.getVersion(), new ProtocolSignature(p.getVersion(), methods)); } return map; }
@Override public ProtocolSignature getProtocolSignature(String protocol, long clientVersion, int clientMethodsHash) throws IOException { return new ProtocolSignature(IServer.versionID, null); } }
@Override public ProtocolSignature getProtocolSignature(String protocol, long clientVersion, int clientMethodsHash) throws IOException { return new ProtocolSignature(IServer.versionID, null); } }
@Override public Writable newInstance() { return new ProtocolSignature(); } });
@Override public Writable newInstance() { return new ProtocolSignature(); } });
@Override public Writable newInstance() { return new ProtocolSignature(); } });
@Override public Writable newInstance() { return new ProtocolSignature(); } });
@Override public ProtocolSignature getProtocolSignature(String protocol, long clientVersion, int clientMethodsHash) throws IOException { return new ProtocolSignature(TestProtocol.versionID, null); } }
@Override public ProtocolSignature getProtocolSignature(String protocol, long clientVersion, int hashcode) { return new ProtocolSignature(TestProtocol.versionID, null); }
@Override public ProtocolSignature getProtocolSignature(String protocol, long clientVersion, int clientMethodsHash) throws IOException { return new ProtocolSignature(TestProtocol.versionID, null); } }
@Override public ProtocolSignature getProtocolSignature(String protocol, long clientVersion, int hashcode) { return new ProtocolSignature(TestProtocol.versionID, null); }
@Override // VersionedProtocol public ProtocolSignature getProtocolSignature(String protocol, long clientVersion, int clientMethodsHashCode) throws IOException { if (protocol.equals(MiniProtocol.class.getName())) return new ProtocolSignature(versionID, null); throw new IOException("Unknown protocol: " + protocol); }
@Override // VersionedProtocol public ProtocolSignature getProtocolSignature(String protocol, long clientVersion, int clientMethodsHashCode) throws IOException { if (protocol.equals(MiniProtocol.class.getName())) return new ProtocolSignature(versionID, null); throw new IOException("Unknown protocol: " + protocol); }
private static Map<Long, ProtocolSignature> convertProtocolSignatureProtos(List<ProtocolSignatureProto> protoList) { Map<Long, ProtocolSignature> map = new TreeMap<Long, ProtocolSignature>(); for (ProtocolSignatureProto p : protoList) { int [] methods = new int[p.getMethodsList().size()]; int index=0; for (int m : p.getMethodsList()) { methods[index++] = m; } map.put(p.getVersion(), new ProtocolSignature(p.getVersion(), methods)); } return map; }
private static Map<Long, ProtocolSignature> convertProtocolSignatureProtos(List<ProtocolSignatureProto> protoList) { Map<Long, ProtocolSignature> map = new TreeMap<Long, ProtocolSignature>(); for (ProtocolSignatureProto p : protoList) { int [] methods = new int[p.getMethodsList().size()]; int index=0; for (int m : p.getMethodsList()) { methods[index++] = m; } map.put(p.getVersion(), new ProtocolSignature(p.getVersion(), methods)); } return map; }
private static Map<Long, ProtocolSignature> convertProtocolSignatureProtos(List<ProtocolSignatureProto> protoList) { Map<Long, ProtocolSignature> map = new TreeMap<Long, ProtocolSignature>(); for (ProtocolSignatureProto p : protoList) { int [] methods = new int[p.getMethodsList().size()]; int index=0; for (int m : p.getMethodsList()) { methods[index++] = m; } map.put(p.getVersion(), new ProtocolSignature(p.getVersion(), methods)); } return map; }
private static Map<Long, ProtocolSignature> convertProtocolSignatureProtos(List<ProtocolSignatureProto> protoList) { Map<Long, ProtocolSignature> map = new TreeMap<Long, ProtocolSignature>(); for (ProtocolSignatureProto p : protoList) { int [] methods = new int[p.getMethodsList().size()]; int index=0; for (int m : p.getMethodsList()) { methods[index++] = m; } map.put(p.getVersion(), new ProtocolSignature(p.getVersion(), methods)); } return map; }