package net.tomp2p; import net.tomp2p.connection.ChannelCreator; import net.tomp2p.message.Buffer; import net.tomp2p.p2p.Peer; import net.tomp2p.p2p.builder.SendDirectBuilder; import net.tomp2p.peers.PeerAddress; import net.tomp2p.rpc.RawDataReply; import net.tomp2p.storage.AlternativeCompositeByteBuf; public abstract class SendDirectProfiler extends Profiler { private static final int BUFFER_SIZE_BYTES = 1000; protected final boolean isForceUdp; protected Peer sender; protected Peer receiver; protected ChannelCreator cc; protected SendDirectBuilder sendDirectBuilder; public SendDirectProfiler(boolean isForceUdp) { this.isForceUdp = isForceUdp; } @Override protected void shutdown() throws Exception { if (sender != null) { sender.shutdown().awaitUninterruptibly(); } if (receiver != null) { receiver.shutdown().awaitUninterruptibly(); } if (cc != null) { cc.shutdown().awaitUninterruptibly(); } } protected static Buffer createSampleBuffer() { AlternativeCompositeByteBuf acbb = AlternativeCompositeByteBuf.compBuffer(); for (int i = 0; i < BUFFER_SIZE_BYTES; i++) { acbb.writeByte(i % 256); } return new Buffer(acbb); } protected class SampleRawDataReply implements RawDataReply { @Override public Buffer reply(PeerAddress sender, Buffer requestBuffer, boolean complete) throws Exception { // server returns just OK if same buffer is returned return requestBuffer; } } }