public static <T extends Streamable> T streamableFromByteBuffer(Supplier<T> factory, byte[] buffer) throws Exception { return streamableFromByteBuffer(factory, buffer, 0, buffer.length); }
public static <T extends Streamable> T streamableFromByteBuffer(Class<? extends Streamable> cl,byte[] buffer) throws Exception { return streamableFromByteBuffer(cl,buffer,0,buffer.length); }
protected static PingData deserialize(final byte[] data) throws Exception { return Util.streamableFromByteBuffer(PingData::new, data); }
DrawCommand comm=Util.streamableFromByteBuffer(DrawCommand::new, buf, offset, length); switch(comm.mode) { case DrawCommand.DRAW:
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(); } }
case VIEW: try { ViewData data=Util.streamableFromByteBuffer(ViewData::new, msg.getRawBuffer(), msg.getOffset(), msg.getLength());
protected Object installView(byte[] buf, int offset, int length) { try { ViewData data=Util.streamableFromByteBuffer(ViewData::new, buf, offset, length); if(data.uuids != null) NameCache.add(data.uuids); remote_view=data.remote_view; if(global_view == null || (data.global_view != null &&!global_view.equals(data.global_view))) { global_view=data.global_view; synchronized(this) { if(data.global_view.getViewId().getId() > global_view_id) global_view_id=data.global_view.getViewId().getId(); } if(present_global_views) return up_prot.up(new Event(Event.VIEW_CHANGE, global_view)); } } catch(Exception e) { log.error(Util.getMessage("FailedInstallingView"), e); } return null; }
protected void sendOnLocalCluster(byte[] buf, int offset, int length) { try { Message msg=Util.streamableFromByteBuffer(Message::new, buf, offset, length); Address sender=msg.getSrc(); Address dest=msg.getDest(); if(!isLocal(dest)) { if(log.isWarnEnabled()) log.warn("[" + local_addr + "] dest=" + dest + " is not local (site=" + this.site + "); discarding it"); return; } // set myself to be the sender msg.setSrc(local_addr); // later, in RELAY, we'll take the original sender from the header and make it the sender msg.putHeader(id, RelayHeader.createDisseminateHeader(sender)); if(log.isTraceEnabled()) log.trace("received msg from " + sender + ", passing down the stack with dest=" + msg.getDest() + " and src=" + msg.getSrc()); down_prot.down(msg); } catch(Exception e) { log.error(Util.getMessage("FailedSendingOnLocalCluster"), e); } }
public static <T extends Streamable> T streamableFromByteBuffer(Supplier<T> factory, byte[] buffer) throws Exception { return streamableFromByteBuffer(factory, buffer, 0, buffer.length); }
public static <T extends Streamable> T streamableFromByteBuffer(Class<? extends Streamable> cl,byte[] buffer) throws Exception { return streamableFromByteBuffer(cl,buffer,0,buffer.length); }
protected static PingData deserialize(final byte[] data) throws Exception { return Util.streamableFromByteBuffer(PingData::new, data); }
DrawCommand comm=Util.streamableFromByteBuffer(DrawCommand::new, buf, offset, length); switch(comm.mode) { case DrawCommand.DRAW:
public void receive(Message msg) { byte[] buf=msg.getRawBuffer(); DrawCommand comm=null; try { comm=(DrawCommand)Util.streamableFromByteBuffer(DrawCommand.class, 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("***** Draw2Channels.run(): received invalid draw command " + comm.mode); break; } } catch(Exception ex) { ex.printStackTrace(); } }
public void receive(Message msg) { byte[] buf=msg.getRawBuffer(); if(buf == null) { System.err.println("received null buffer from " + msg.getSrc() + ", headers: " + msg.printHeaders()); return; } try { DrawCommand comm=(DrawCommand)Util.streamableFromByteBuffer(DrawCommand.class, 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(); } }
public void receive(Message msg) { byte[] buf=msg.getRawBuffer(); if(buf == null) { System.err.println("[" + channel.getAddress() + "] received null buffer from " + msg.getSrc() + ", headers: " + msg.printHeaders()); return; } try { DrawCommand comm=(DrawCommand)Util.streamableFromByteBuffer(DrawCommand.class, 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(); } }
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(); } }
private static Message _decrypt(Cipher cipher, Message msg, boolean decrypt_entire_msg) throws Exception { if(!decrypt_entire_msg) { msg.setBuffer(cipher.doFinal(msg.getRawBuffer(), msg.getOffset(), msg.getLength())); return msg; } byte[] decrypted_msg=cipher.doFinal(msg.getRawBuffer(), msg.getOffset(), msg.getLength()); Message ret=(Message)Util.streamableFromByteBuffer(Message.class, decrypted_msg); if(ret.getDest() == null) ret.setDest(msg.getDest()); if(ret.getSrc() == null) ret.setSrc(msg.getSrc()); return ret; }
protected Object installView(byte[] buf, int offset, int length) { try { ViewData data=Util.streamableFromByteBuffer(ViewData::new, buf, offset, length); if(data.uuids != null) NameCache.add(data.uuids); remote_view=data.remote_view; if(global_view == null || (data.global_view != null &&!global_view.equals(data.global_view))) { global_view=data.global_view; synchronized(this) { if(data.global_view.getViewId().getId() > global_view_id) global_view_id=data.global_view.getViewId().getId(); } if(present_global_views) return up_prot.up(new Event(Event.VIEW_CHANGE, global_view)); } } catch(Exception e) { log.error(Util.getMessage("FailedInstallingView"), e); } return null; }
case VIEW: try { ViewData data=Util.streamableFromByteBuffer(ViewData::new, msg.getRawBuffer(), msg.getOffset(), msg.getLength());
protected void sendOnLocalCluster(byte[] buf, int offset, int length) { try { Message msg=Util.streamableFromByteBuffer(Message::new, buf, offset, length); Address sender=msg.getSrc(); Address dest=msg.getDest(); if(!isLocal(dest)) { if(log.isWarnEnabled()) log.warn("[" + local_addr + "] dest=" + dest + " is not local (site=" + this.site + "); discarding it"); return; } // set myself to be the sender msg.setSrc(local_addr); // later, in RELAY, we'll take the original sender from the header and make it the sender msg.putHeader(id, RelayHeader.createDisseminateHeader(sender)); if(log.isTraceEnabled()) log.trace("received msg from " + sender + ", passing down the stack with dest=" + msg.getDest() + " and src=" + msg.getSrc()); down_prot.down(msg); } catch(Exception e) { log.error(Util.getMessage("FailedSendingOnLocalCluster"), e); } }