public void readFrom(DataInput in) throws Exception { readFrom(in, true); }
public void readFrom(DataInput in) throws Exception { byte flags=in.readByte(); // 1. view if((flags & VIEW_PRESENT) == VIEW_PRESENT) { view=new View(); view.readFrom(in); } // 2. digest if((flags & DIGEST_PRESENT) == DIGEST_PRESENT) { digest=new Digest(view.getMembersRaw()); digest.readFrom(in, false); } // 3. fail_reason if((flags & FAIL_REASON_PRESENT) == FAIL_REASON_PRESENT) fail_reason=in.readUTF(); }
public static Tuple<View,Digest> _readViewAndDigest(byte[] buffer, int offset, int length) throws Exception { if(buffer == null) return null; DataInput in=new ByteArrayDataInputStream(buffer, offset, length); View tmp_view=null; Digest digest=null; short flags=in.readShort(); if((flags & VIEW_PRESENT) == VIEW_PRESENT) { tmp_view=(flags & MERGE_VIEW) == MERGE_VIEW? new MergeView() : (flags & DELTA_VIEW) == DELTA_VIEW? new DeltaView() : new View(); tmp_view.readFrom(in); } if((flags & DIGEST_PRESENT) == DIGEST_PRESENT) { if((flags & READ_ADDRS) == READ_ADDRS) { digest=new Digest(); digest.readFrom(in); } else { digest=new Digest(tmp_view.getMembersRaw()); digest.readFrom(in,false); } } return new Tuple<>(tmp_view, digest); }
void filterIncomingMessage(DistributionMessage m) { switch (m.getDSFID()) { case JOIN_RESPONSE: JoinResponseMessage jrsp = (JoinResponseMessage) m; if (jrsp.getRejectionMessage() == null && services.getConfig().getTransport().isMcastEnabled()) { byte[] serializedDigest = jrsp.getMessengerData(); ByteArrayInputStream bis = new ByteArrayInputStream(serializedDigest); DataInputStream dis = new DataInputStream(bis); try { Digest digest = new Digest(); digest.readFrom(dis); logger.trace("installing JGroups message digest {}", digest); this.myChannel.getProtocolStack().getTopProtocol() .down(new Event(Event.MERGE_DIGEST, digest)); jrsp.setMessengerData(null); } catch (Exception e) { logger.fatal("Unable to read JGroups messaging digest", e); } } break; default: break; } }
public void readFrom(DataInput in) throws Exception { readFrom(in, true); }
public void readFrom(DataInput in) throws Exception { byte flags=in.readByte(); // 1. view if((flags & VIEW_PRESENT) == VIEW_PRESENT) { view=new View(); view.readFrom(in); } // 2. digest if((flags & DIGEST_PRESENT) == DIGEST_PRESENT) { digest=new Digest(view.getMembersRaw()); digest.readFrom(in, false); } // 3. fail_reason if((flags & FAIL_REASON_PRESENT) == FAIL_REASON_PRESENT) fail_reason=in.readUTF(); }
public static Tuple<View,Digest> _readViewAndDigest(byte[] buffer, int offset, int length) throws Exception { if(buffer == null) return null; DataInput in=new ByteArrayDataInputStream(buffer, offset, length); View tmp_view=null; Digest digest=null; short flags=in.readShort(); if((flags & VIEW_PRESENT) == VIEW_PRESENT) { tmp_view=(flags & MERGE_VIEW) == MERGE_VIEW? new MergeView() : (flags & DELTA_VIEW) == DELTA_VIEW? new DeltaView() : new View(); tmp_view.readFrom(in); } if((flags & DIGEST_PRESENT) == DIGEST_PRESENT) { if((flags & READ_ADDRS) == READ_ADDRS) { digest=new Digest(); digest.readFrom(in); } else { digest=new Digest(tmp_view.getMembersRaw()); digest.readFrom(in,false); } } return new Tuple<>(tmp_view, digest); }
void filterIncomingMessage(DistributionMessage m) { switch (m.getDSFID()) { case JOIN_RESPONSE: JoinResponseMessage jrsp = (JoinResponseMessage)m; if (jrsp.getRejectionMessage() == null && services.getConfig().getTransport().isMcastEnabled()) { byte[] serializedDigest = jrsp.getMessengerData(); ByteArrayInputStream bis = new ByteArrayInputStream(serializedDigest); DataInputStream dis = new DataInputStream(bis); try { Digest digest = new Digest(); digest.readFrom(dis); if (digest != null) { logger.trace("installing JGroups message digest {}", digest); this.myChannel.getProtocolStack() .getTopProtocol().down(new Event(Event.SET_DIGEST, digest)); jrsp.setMessengerData(null); } } catch (Exception e) { logger.fatal("Unable to read JGroups messaging digest", e); } } break; default: break; } }