public static View readView(DataInput in) throws Exception { if(!in.readBoolean()) return null; boolean isMergeView=in.readBoolean(); View view; if(isMergeView) view=new MergeView(); else view=new View(); view.readFrom(in); return view; }
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 void readFrom(DataInput in) throws Exception { super.readFrom(in); short len=in.readShort(); if(len > 0) { subgroups=new View[len]; for(int i=0; i < len; i++) { int index=in.readShort(); Address creator=index >= 0 ? get(index) : Util.readAddress(in); long id=in.readLong(); Address[] mbrs=new Address[in.readShort()]; for(int j=0; j < mbrs.length; j++) { index=in.readShort(); mbrs[j]=index >= 0? get(index) : Util.readAddress(in); } try { View view=View.create(creator, id, mbrs); subgroups[i]=view; } catch(Throwable t) { } } } }
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); }
public void readFrom(DataInputStream in) throws IOException, IllegalAccessException, InstantiationException { super.readFrom(in); short len=in.readShort(); if(len > 0) { View v; subgroups=new Vector<View>(); for(int i=0; i < len; i++) { boolean is_merge_view=in.readBoolean(); v=is_merge_view? new MergeView() : new View(); v.readFrom(in); subgroups.add(v); } } }
public static View readView(DataInput in) throws Exception { if(!in.readBoolean()) return null; boolean isMergeView=in.readBoolean(); View view; if(isMergeView) view=new MergeView(); else view=new View(); view.readFrom(in); return view; }
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 void readFrom(DataInput in) throws Exception { super.readFrom(in); short len=in.readShort(); if(len > 0) { subgroups=new View[len]; for(int i=0; i < len; i++) { int index=in.readShort(); Address creator=index >= 0 ? get(index) : Util.readAddress(in); long id=in.readLong(); Address[] mbrs=new Address[in.readShort()]; for(int j=0; j < mbrs.length; j++) { index=in.readShort(); mbrs[j]=index >= 0? get(index) : Util.readAddress(in); } try { View view=View.create(creator, id, mbrs); subgroups[i]=view; } catch(Throwable t) { } } } }
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); }