package net.tomp2p; import net.tomp2p.futures.FutureChannelCreator; import net.tomp2p.futures.FutureResponse; import net.tomp2p.p2p.builder.SendDirectBuilder; import net.tomp2p.peers.PeerAddress; public class SendDirectRemoteProfiler extends SendDirectProfiler { private static final int NETWORK_SIZE = 1; private PeerAddress remoteAddress; public SendDirectRemoteProfiler(boolean isForceUdp) { super(isForceUdp); } @Override protected void setup(Arguments args) throws Exception { Network = BenchmarkUtil.createNodes(NETWORK_SIZE, Rnd, 9099, false, false); sender = Network[0]; remoteAddress = (PeerAddress) args.getParam(); FutureChannelCreator fcc = sender.connectionBean().reservation().create(isForceUdp ? 1 : 0, isForceUdp ? 0 : 1); fcc.awaitUninterruptibly(); cc = fcc.channelCreator(); sendDirectBuilder = new SendDirectBuilder(sender, (PeerAddress) null) .idleUDPSeconds(0) .idleTCPSeconds(0) .buffer(createSampleBuffer()) .forceUDP(isForceUdp); } @Override protected void execute() throws Exception { FutureResponse fr = sender.directDataRPC().send(remoteAddress, sendDirectBuilder, cc); fr.awaitUninterruptibly(); // make buffer reusable sendDirectBuilder.buffer().reset(); sendDirectBuilder.buffer().buffer().readerIndex(0); } }