protected ExecutionObjectCloner getExecutionObjectCloner() { return new KryoSerializer(); }
/** * Interrupts the collection and takes a copy of the collected stats */ public Map<Object, ProfilerData> getProfilerSnapshot() { rwlock.readLock().lock(); try { return kryoCloner.clone(collectedData); } finally { rwlock.readLock().unlock(); } }
@Override public byte[] serializeMessage(BasicRuntime basicRuntime, Message message) throws Exception { return outputPool.run(out -> { return kryoPool.run(kryo -> { out.writeByte(message.getMessageType()); out.writeInt(message.getMessageId()); writeNodeAddress(out, message.getReferenceAddress()); out.writeInt(message.getInterfaceId()); out.writeInt(message.getMethodId()); writeObjectId(kryo, out, message); writeHeaders(kryo, out, message.getHeaders()); writeNodeAddress(out, message.getFromNode()); writePayload(kryo, out, message); out.flush(); return out.getByteArrayOutputStream().toByteArray(); }); }, DEFAULT_BUFFER_SIZE); }
@Override public Message deserializeMessage(BasicRuntime basicRuntime, final byte[] payload) throws Exception { return inputPool.run(in -> { in.setInputStream(new ByteArrayInputStream(payload)); return kryoPool.run(kryo -> { final Message message = new Message(); message.setMessageType(in.readByte()); message.setMessageId(in.readInt()); message.setReferenceAddress(readNodeAddress(in)); message.setInterfaceId(in.readInt()); message.setMethodId(in.readInt()); message.setObjectId(readObjectId(kryo, in)); message.setHeaders(readHeaders(kryo, in)); message.setFromNode(readNodeAddress(in)); message.setPayload(readPayload(kryo, in)); return message; }); }, DEFAULT_BUFFER_SIZE); }
messageSerializer = new KryoSerializer(); objectCloner = new KryoSerializer(); messageLoopback.setCloner(messageLoopbackObjectCloner != null ? messageLoopbackObjectCloner : new KryoSerializer()); messageLoopback.setRuntime(this); pipeline.addLast(messageLoopback.getName(), messageLoopback);