public String printHeaders() { StringBuilder sb=new StringBuilder().append("dest=" + dest); if(sender != null) sb.append(", sender=").append(sender); sb.append("\n").append(size()).append(":\n"); int count=1; for(Message msg: this) sb.append("#").append(count++).append(": ").append(msg.printHeaders()).append("\n"); return sb.toString(); }
protected static void dump(String type, Message msg) { StringBuilder sb=new StringBuilder(); sb.append(String.format("\n%s from %s (%d bytes):\nhdrs: %s\n", type, msg.src(), msg.getLength(), msg.printHeaders())); if(msg.getLength() > 0) { sb.append("payload: "); printPayload(msg, sb); sb.append("\n"); } System.out.println(sb.toString()); }
public static void main(String[] args) throws FileNotFoundException { String file=null; for(int i=0; i < args.length; i++) { if(args[i].equals("-file")) { file=args[++i]; continue; } help(); return; } List<Message> msgs=parse(file); int cnt=1; for(Message msg: msgs) System.out.println(cnt++ + ": " + msg + ", hdrs: " + msg.printHeaders()); }
public static String dump(byte[] buf, int offset, int length) { StringBuilder sb=new StringBuilder(); List<Message> msgs=parse(new ByteArrayInputStream(buf, offset, length)); if(msgs != null) for(Message msg: msgs) sb.append(String.format("dst=%s src=%s (%d bytes): hdrs= %s\n", msg.dest(), msg.src(), msg.getLength(), msg.printHeaders())); return sb.toString(); }
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); }
public Object down(Message msg) { if(print_down) System.out.printf("-- to %s (%d bytes): %s\n", msg.dest(), msg.getLength(), msg.printHeaders()); return down_prot.down(msg); // Pass on to the layer below us }
public Object up(Message msg) { if(print_up) System.out.printf("-- [s] from %s (%d bytes): %s\n", msg.src(), msg.getLength(), msg.printHeaders()); return up_prot.up(msg); // Pass up to the layer above us }
protected static void dump(GossipData data) { System.out.println(""); List<Message> messages=Util.parse(data.buffer, data.offset, data.length); if(messages != null) for(Message msg : messages) System.out.printf("dst=%s src=%s (%d bytes): hdrs= %s\n", msg.dest(), msg.src(), msg.getLength(), msg.printHeaders()); }
public void up(MessageBatch batch) { if(print_up) { for(Message msg : batch) System.out.printf("-- [b] from %s (%d bytes): %s\n", msg.src(), msg.getLength(), msg.printHeaders()); } if(!batch.isEmpty()) up_prot.up(batch); }
protected void dropped(Message msg, boolean down) { log.trace("dropped msg %s hdrs: %s\n", down? "to " + msg.dest() : "from " + msg.src(), msg.printHeaders()); } }
public Object up(Message msg) { if(log.isTraceEnabled()) { long size=raw_buffer? msg.getLength() : msg.size(); if(size >= min_size) { StringBuilder sb=new StringBuilder(local_addr + ".up(): size of message buffer="); sb.append(Util.printBytes(size)).append(", " + numHeaders(msg) + " headers"); if(print_msg) sb.append(", headers=" + msg.printHeaders()); log.trace(sb); } } return up_prot.up(msg); }
public Object down(Message msg) { if(log.isTraceEnabled()) { long size=raw_buffer? msg.getLength() : msg.size(); if(size >= min_size) { StringBuilder sb=new StringBuilder(local_addr + ".down(): size of message buffer="); sb.append(Util.printBytes(size)).append(", " + numHeaders(msg) + " headers"); if(print_msg) sb.append(", headers=" + msg.printHeaders()); log.trace(sb); } } return down_prot.down(msg); }
protected void _send(Message msg, Address dest) { try { send(msg, dest); } catch(InterruptedIOException iex) { } catch(InterruptedException interruptedEx) { Thread.currentThread().interrupt(); // let someone else handle the interrupt } catch(SocketException sock_ex) { log.trace(Util.getMessage("SendFailure"), local_addr, (dest == null? "cluster" : dest), msg.size(), sock_ex.toString(), msg.printHeaders()); } catch(Throwable e) { log.error(Util.getMessage("SendFailure"), local_addr, (dest == null? "cluster" : dest), msg.size(), e.toString(), msg.printHeaders()); } }
public void receive(Message msg) { byte[] buf=msg.getRawBuffer(); if(buf == null) { System.err.printf("%s: received null buffer from %s, headers: %s\n", channel.getAddress(), msg.src(), msg.printHeaders()); return; } try { DrawCommand comm=Util.streamableFromByteBuffer(DrawCommand::new, buf, msg.getOffset(), msg.getLength()); switch(comm.mode) { case DrawCommand.DRAW: if(panel != null) panel.drawPoint(comm); break; case DrawCommand.CLEAR: clearPanel(); break; default: System.err.println("***** received invalid draw command " + comm.mode); break; } } catch(Exception e) { e.printStackTrace(); } }
protected void loopback(Message msg, final boolean multicast) { final Message copy=loopback_copy? msg.copy() : msg; if(is_trace) log.trace("%s: looping back message %s, headers are %s", local_addr, copy, copy.printHeaders()); if(!loopback_separate_thread) { passMessageUp(copy, null, false, multicast, false); return; } // changed to fix http://jira.jboss.com/jira/browse/JGRP-506 boolean internal=msg.isFlagSet(Message.Flag.INTERNAL); boolean oob=msg.isFlagSet(Message.Flag.OOB); // submitToThreadPool(() -> passMessageUp(copy, null, false, multicast, false), internal); msg_processing_policy.loopback(msg, oob, internal); }
protected void sendSingleMessage(final Message msg) { Address dest=msg.getDest(); try { Util.writeMessage(msg, output, dest == null); transport.doSend(output.buffer(), 0, output.position(), dest); if(transport.statsEnabled()) transport.incrNumSingleMsgsSent(1); } catch(SocketException | SocketTimeoutException sock_ex) { log.trace(Util.getMessage("SendFailure"), transport.localAddress(), (dest == null? "cluster" : dest), msg.size(), sock_ex.toString(), msg.printHeaders()); } catch(Throwable e) { log.error(Util.getMessage("SendFailure"), transport.localAddress(), (dest == null? "cluster" : dest), msg.size(), e.toString(), msg.printHeaders()); } }
protected void sendSingleMessage(final Message msg, final ByteArrayDataOutputStream output) { Address dest=msg.getDest(); try { output.position(0); Util.writeMessage(msg, output, dest == null); transport.doSend(output.buffer(), 0, output.position(), dest); if(transport.statsEnabled()) transport.incrNumSingleMsgsSent(1); } catch(SocketException | SocketTimeoutException sock_ex) { log.trace(Util.getMessage("SendFailure"), transport.localAddress(), (dest == null? "cluster" : dest), msg.size(), sock_ex.toString(), msg.printHeaders()); } catch(Throwable e) { log.error(Util.getMessage("SendFailure"), transport.localAddress(), (dest == null? "cluster" : dest), msg.size(), e.toString(), msg.printHeaders()); } }
public void run() { Message msg=null, copy; while(true) { synchronized(this) { try { msg=send_queue.poll(1000, TimeUnit.MILLISECONDS); if(msg == null) { Util.sleep(1000); continue; } } catch(InterruptedException e) { return; } copy=msg.copy().putHeader(id, new ABPHeader(Type.data, bit)); } log.trace("%s: --> %s.msg(%d). Msg: %s", local_addr, copy.dest(), bit, copy.printHeaders()); down_prot.down(copy); } } }
public Object down(Message msg) { try { if(secret_key == null) { log.trace("%s: discarded %s message to %s as secret key is null, hdrs: %s", local_addr, msg.dest() == null? "mcast" : "unicast", msg.dest(), msg.printHeaders()); secretKeyNotAvailable(); return null; } encryptAndSend(msg); } catch(Exception e) { log.warn("%s: unable to send message down", local_addr, e); } return null; }
public void passMessageUp(Message msg, byte[] cluster_name, boolean perform_cluster_name_matching, boolean multicast, boolean discard_own_mcast) { if(is_trace) log.trace("%s: received %s, headers are %s", local_addr, msg, msg.printHeaders()); if(up_prot == null) return; if(multicast && discard_own_mcast && local_addr != null && local_addr.equals(msg.getSrc())) return; // Discard if message's cluster name is not the same as our cluster name if(perform_cluster_name_matching && this.cluster_name != null && !this.cluster_name.equals(cluster_name)) { if(log_discard_msgs && log.isWarnEnabled()) { Address sender=msg.getSrc(); if(suppress_log_different_cluster != null) suppress_log_different_cluster.log(SuppressLog.Level.warn, sender, suppress_time_different_cluster_warnings, new AsciiString(cluster_name),this.cluster_name, sender); else log.warn(Util.getMessage("MsgDroppedDiffCluster"), new AsciiString(cluster_name),this.cluster_name, sender); } return; } up_prot.up(msg); }