private void sleep(final int variable_milliseconds_delay, final int nano_delay) { final int millis = computeDelay(variable_milliseconds_delay); if (millis != 0 || nano_delay != 0) { Util.sleep(millis, nano_delay); } }
public void up(final MessageBatch batch) { sleep(in_delay, in_delay_nanos); up_prot.up(batch); }
/** * Inserts a DELAY protocol in the JGroups stack used by the cache, and returns it. * The DELAY protocol can then be used to inject delays in milliseconds both at receiver * and sending side. * @param cache * @param in_delay_millis * @param out_delay_millis * @return a reference to the DELAY instance being used by the JGroups stack * @throws Exception */ public static DELAY setDelayForCache(Cache<?, ?> cache, int in_delay_millis, int out_delay_millis) throws Exception { JGroupsTransport jgt = (JGroupsTransport) TestingUtil.extractComponent(cache, Transport.class); JChannel ch = jgt.getChannel(); ProtocolStack ps = ch.getProtocolStack(); DELAY delay = ps.findProtocol(DELAY.class); if (delay==null) { delay = new DELAY(); ps.insertProtocol(delay, ProtocolStack.Position.ABOVE, TP.class); } delay.setInDelay(in_delay_millis); delay.setOutDelay(out_delay_millis); return delay; }
private void sleep(final int variable_milliseconds_delay, final int nano_delay) { final int millis = computeDelay(variable_milliseconds_delay); if (millis != 0 || nano_delay != 0) { Util.sleep(millis, nano_delay); } }
public Object up(Message msg) { sleep(in_delay, in_delay_nanos); return up_prot.up(msg); }
public Object down(Event evt) { int delay=out_delay > 0 ? computeDelay(out_delay) : 0; switch(evt.getType()) { case Event.MSG: // Only delay messages, not other events ! if(log.isInfoEnabled()) log.info("delaying outgoing message for " + delay + " milliseconds"); Util.sleep(delay); break; } return down_prot.down(evt); // Pass on to the layer below us }
public Object up(Message msg) { sleep(in_delay, in_delay_nanos); return up_prot.up(msg); }
public Object up(Event evt) { int delay=in_delay > 0 ? computeDelay(in_delay) : 0; switch(evt.getType()) { case Event.MSG: // Only delay messages, not other events ! if(log.isInfoEnabled()) log.info("delaying incoming message for " + delay + " milliseconds"); Util.sleep(delay); break; } return up_prot.up(evt); // Pass up to the layer above us }
public void up(final MessageBatch batch) { sleep(in_delay, in_delay_nanos); up_prot.up(batch); }