public Object down(Message msg) { System.out.println("------------------- TRACE (sent) -----------------------"); System.out.printf("msg from %s to %s (%d bytes): hdrs=%s\n", msg.src(), msg.dest(), msg.length(), msg.printHeaders()); System.out.println("--------------------------------------------------------"); return down_prot.down(msg); }
@Override protected Object handleDownMessage(final Message msg) { Address dest=msg.dest(); if(dest == null) { // 2nd line of defense, not really needed log.error("%s doesn't handle multicast messages; passing message down", getClass().getSimpleName()); return down_prot.down(msg); } Credit cred=sent.get(dest); if(cred == null) return down_prot.down(msg); int length=msg.length(); long block_time=max_block_times != null? getMaxBlockTime(length) : max_block_time; while(running && sent.containsKey(dest)) { boolean rc=cred.decrementIfEnoughCredits(msg, length, block_time); if(rc || !running || max_block_times != null) break; if(cred.needToSendCreditRequest(max_block_time)) sendCreditRequest(dest, Math.max(0, max_credits - cred.get())); } // send message - either after regular processing, or after blocking (when enough credits available again) return down_prot.down(msg); }
@Override protected Object handleDownMessage(Message msg) { Address dest=msg.dest(); if(dest == null) { // 2nd line of defense, not really needed log.error("%s doesn't handle multicast messages; passing message down", getClass().getSimpleName()); return down_prot.down(msg); } Credit cred=sent.get(dest); if(cred == null) return down_prot.down(msg); int length=msg.length(); if(running) { if(cred.decrementIfEnoughCredits(msg, length, 0)) // timeout is ignored return down_prot.down(msg); if(cred.needToSendCreditRequest(max_block_time)) sendCreditRequest(dest, Math.max(0, max_credits - cred.get())); return null; // msg was queued } return down_prot.down(msg); }
public Object up(Message msg) { FragHeader hdr=msg.getHeader(this.id); if(hdr != null) { // needs to be defragmented Message assembled_msg=unfragment(msg, hdr); if(assembled_msg != null) { assembled_msg.setSrc(msg.getSrc()); // needed ? YES, because fragments have a null src !! up_prot.up(assembled_msg); avg_size_up.add(assembled_msg.length()); } return null; } return up_prot.up(msg); }
public Object up(Message msg) { Frag3Header hdr=msg.getHeader(this.id); if(hdr != null) { // needs to be defragmented Message assembled_msg=unfragment(msg, hdr); if(assembled_msg != null) { assembled_msg.setSrc(msg.getSrc()); // needed ? YES, because fragments have a null src !! up_prot.up(assembled_msg); avg_size_up.add(assembled_msg.length()); } return null; } return up_prot.up(msg); }
@Override protected Object handleDownMessage(final Message msg) { Address dest=msg.dest(); if(dest != null) // 2nd line of defense, not really needed return down_prot.down(msg); int length=msg.length(); if(running) { if(credits.decrement(msg, length, 0)) // timeout is ignored return down_prot.down(msg); // message was queued if(needToSendCreditRequest()) { List<Tuple<Address,Long>> targets=credits.getMembersWithCreditsLessThan(min_credits); for(Tuple<Address,Long> tuple: targets) sendCreditRequest(tuple.getVal1(), Math.min(max_credits, max_credits - tuple.getVal2())); } return null; } return down_prot.down(msg); }
@Override protected Object handleDownMessage(final Message msg) { Address dest=msg.dest(); if(dest != null) // 2nd line of defense, not really needed return down_prot.down(msg); int length=msg.length(); long block_time=max_block_times != null? getMaxBlockTime(length) : max_block_time; while(running) { boolean rc=credits.decrement(msg, length, block_time); if(rc || max_block_times != null || !running) break; if(needToSendCreditRequest()) { List<Tuple<Address,Long>> targets=credits.getMembersWithCreditsLessThan(min_credits); for(Tuple<Address,Long> tuple: targets) sendCreditRequest(tuple.getVal1(), Math.min(max_credits, max_credits - tuple.getVal2())); } } // send message - either after regular processing, or after blocking (when enough credits are available again) return down_prot.down(msg); }
public void up(MessageBatch batch) { for(Message msg: batch) { FragHeader hdr=msg.getHeader(this.id); if(hdr != null) { // needs to be defragmented Message assembled_msg=unfragment(msg,hdr); if(assembled_msg != null) { // the reassembled msg has to be add in the right place (https://issues.jboss.org/browse/JGRP-1648), // and canot be added to the tail of the batch ! assembled_msg.setSrc(batch.sender()); batch.replace(msg, assembled_msg); avg_size_up.add(assembled_msg.length()); } else batch.remove(msg); } } if(!batch.isEmpty()) up_prot.up(batch); }
public void up(MessageBatch batch) { for(Message msg: batch) { Frag3Header hdr=msg.getHeader(this.id); if(hdr != null) { // needs to be defragmented Message assembled_msg=unfragment(msg,hdr); if(assembled_msg != null) { // the reassembled msg has to be add in the right place (https://issues.jboss.org/browse/JGRP-1648), // and canot be added to the tail of the batch ! assembled_msg.setSrc(batch.sender()); batch.replace(msg, assembled_msg); avg_size_up.add(assembled_msg.length()); } else batch.remove(msg); } } if(!batch.isEmpty()) up_prot.up(batch); }
public Object down(Message msg) { System.out.println("------------------- TRACE (sent) -----------------------"); System.out.printf("msg from %s to %s (%d bytes): hdrs=%s\n", msg.src(), msg.dest(), msg.length(), msg.printHeaders()); System.out.println("--------------------------------------------------------"); return down_prot.down(msg); }
@Override protected Object handleDownMessage(final Message msg) { Address dest=msg.dest(); if(dest == null) { // 2nd line of defense, not really needed log.error("%s doesn't handle multicast messages; passing message down", getClass().getSimpleName()); return down_prot.down(msg); } Credit cred=sent.get(dest); if(cred == null) return down_prot.down(msg); int length=msg.length(); long block_time=max_block_times != null? getMaxBlockTime(length) : max_block_time; while(running && sent.containsKey(dest)) { boolean rc=cred.decrementIfEnoughCredits(msg, length, block_time); if(rc || !running || max_block_times != null) break; if(cred.needToSendCreditRequest(max_block_time)) sendCreditRequest(dest, Math.max(0, max_credits - cred.get())); } // send message - either after regular processing, or after blocking (when enough credits available again) return down_prot.down(msg); }
@Override protected Object handleDownMessage(Message msg) { Address dest=msg.dest(); if(dest == null) { // 2nd line of defense, not really needed log.error("%s doesn't handle multicast messages; passing message down", getClass().getSimpleName()); return down_prot.down(msg); } Credit cred=sent.get(dest); if(cred == null) return down_prot.down(msg); int length=msg.length(); if(running) { if(cred.decrementIfEnoughCredits(msg, length, 0)) // timeout is ignored return down_prot.down(msg); if(cred.needToSendCreditRequest(max_block_time)) sendCreditRequest(dest, Math.max(0, max_credits - cred.get())); return null; // msg was queued } return down_prot.down(msg); }
public Object up(Message msg) { Frag3Header hdr=msg.getHeader(this.id); if(hdr != null) { // needs to be defragmented Message assembled_msg=unfragment(msg, hdr); if(assembled_msg != null) { assembled_msg.setSrc(msg.getSrc()); // needed ? YES, because fragments have a null src !! up_prot.up(assembled_msg); avg_size_up.add(assembled_msg.length()); } return null; } return up_prot.up(msg); }
public Object up(Message msg) { FragHeader hdr=msg.getHeader(this.id); if(hdr != null) { // needs to be defragmented Message assembled_msg=unfragment(msg, hdr); if(assembled_msg != null) { assembled_msg.setSrc(msg.getSrc()); // needed ? YES, because fragments have a null src !! up_prot.up(assembled_msg); avg_size_up.add(assembled_msg.length()); } return null; } return up_prot.up(msg); }
@Override protected Object handleDownMessage(final Message msg) { Address dest=msg.dest(); if(dest != null) // 2nd line of defense, not really needed return down_prot.down(msg); int length=msg.length(); if(running) { if(credits.decrement(msg, length, 0)) // timeout is ignored return down_prot.down(msg); // message was queued if(needToSendCreditRequest()) { List<Tuple<Address,Long>> targets=credits.getMembersWithCreditsLessThan(min_credits); for(Tuple<Address,Long> tuple: targets) sendCreditRequest(tuple.getVal1(), Math.min(max_credits, max_credits - tuple.getVal2())); } return null; } return down_prot.down(msg); }
@Override protected Object handleDownMessage(final Message msg) { Address dest=msg.dest(); if(dest != null) // 2nd line of defense, not really needed return down_prot.down(msg); int length=msg.length(); long block_time=max_block_times != null? getMaxBlockTime(length) : max_block_time; while(running) { boolean rc=credits.decrement(msg, length, block_time); if(rc || max_block_times != null || !running) break; if(needToSendCreditRequest()) { List<Tuple<Address,Long>> targets=credits.getMembersWithCreditsLessThan(min_credits); for(Tuple<Address,Long> tuple: targets) sendCreditRequest(tuple.getVal1(), Math.min(max_credits, max_credits - tuple.getVal2())); } } // send message - either after regular processing, or after blocking (when enough credits are available again) return down_prot.down(msg); }
public void up(MessageBatch batch) { for(Message msg: batch) { FragHeader hdr=msg.getHeader(this.id); if(hdr != null) { // needs to be defragmented Message assembled_msg=unfragment(msg,hdr); if(assembled_msg != null) { // the reassembled msg has to be add in the right place (https://issues.jboss.org/browse/JGRP-1648), // and canot be added to the tail of the batch ! assembled_msg.setSrc(batch.sender()); batch.replace(msg, assembled_msg); avg_size_up.add(assembled_msg.length()); } else batch.remove(msg); } } if(!batch.isEmpty()) up_prot.up(batch); }
public void up(MessageBatch batch) { for(Message msg: batch) { Frag3Header hdr=msg.getHeader(this.id); if(hdr != null) { // needs to be defragmented Message assembled_msg=unfragment(msg,hdr); if(assembled_msg != null) { // the reassembled msg has to be add in the right place (https://issues.jboss.org/browse/JGRP-1648), // and canot be added to the tail of the batch ! assembled_msg.setSrc(batch.sender()); batch.replace(msg, assembled_msg); avg_size_up.add(assembled_msg.length()); } else batch.remove(msg); } } if(!batch.isEmpty()) up_prot.up(batch); }