@Override public void read(int len) { if (readByteBuffer.position() != readByteBuffer.capacity()) { logger.error( "Read buffer position {} != capacity {}", readByteBuffer.position(), readByteBuffer.capacity()); eventLoop.disconnect(this); return; } readByteBuffer.flip(); long timestamp = readByteBuffer.getLong(); if (timestamp < -2) { logger.error("Received bad timestamp {}", timestamp); eventLoop.disconnect(this); return; } else if (timestamp != this.timestamp) { logger.error("Received bad timestamp {}. Sent timestamp {}", timestamp, this.timestamp); eventLoop.disconnect(this); return; } else if (timestamp > 0) { benchmarkResults.addResult(System.nanoTime() - timestamp); } readByteBuffer.clear(); send(); }
private void send(final long tsSent) { this.timestamp = tsSent; sendByteBuffer.putLong(tsSent); while (sendByteBuffer.hasRemaining()) { sendByteBuffer.put((byte) 'x'); } sendByteBuffer.flip(); try { while (!send(sendByteBuffer.array())) { sleep(5); } write(); } catch (Exception e) { logger.error("", e); eventLoop.disconnect(this); return; } sendByteBuffer.clear(); }
private void send() { if (warmingUp) { if (++count == BenchmarkConfiguration.messageCount) { logger.info( "Finished warming up! Sent {} messages in {} millis", count, System.currentTimeMillis() - start); warmingUp = false; benchmarking = true; count = 0; send(System.nanoTime()); } else { send(0); } } else if (benchmarking) { if (++count == BenchmarkConfiguration.messageCount) { send(-2); logger.info("Finished sending messages! Sent {} messages.", count); eventLoop.disconnect(this); } else { send(System.nanoTime()); } } }