org.jgroups.protocols.Frag3Header Maven / Gradle / Ivy
package org.jgroups.protocols;
import org.jgroups.Header;
import org.jgroups.util.Bits;
import java.io.DataInput;
import java.io.DataOutput;
import java.util.function.Supplier;
/**
* @author Bela Ban
*/
public class Frag3Header extends Header {
protected int id; // unique sequence number - same for all fragments of a given original message
protected int frag_id; // the ID of the frag, starting with 0. E.g. 4 fragments will have IDs from 0 to 3
protected int num_frags; // the total number of fragments
protected int original_length; // the length of the original message
protected int offset; // offset of this fragment in the original message; length is in Message.getLength()
public Frag3Header() {
} // used for externalization
public Frag3Header(int id, int frag_id, int num_frags) {
this.id=id;
this.frag_id=frag_id;
this.num_frags=num_frags;
}
public Frag3Header(int id, int frag_id, int num_frags, int original_length, int offset) {
this.id=id;
this.frag_id=frag_id;
this.num_frags=num_frags;
this.original_length=original_length;
this.offset=offset;
}
public short getMagicId() {return 91;}
public Supplier extends Header> create() {
return Frag3Header::new;
}
public String toString() {
return String.format("[id=%d, frag-id=%d, num_frags=%d orig-length=%d, offset=%d]",
id, frag_id, num_frags, original_length, offset);
}
public void writeTo(DataOutput out) throws Exception {
Bits.writeInt(id,out);
Bits.writeInt(frag_id, out);
Bits.writeInt(num_frags, out);
Bits.writeInt(original_length, out);
Bits.writeInt(offset, out);
}
public int serializedSize() {
return Bits.size(id) + Bits.size(frag_id) + Bits.size(num_frags) + Bits.size(original_length) + Bits.size(offset);
}
public void readFrom(DataInput in) throws Exception {
id=Bits.readInt(in);
frag_id=Bits.readInt(in);
num_frags=Bits.readInt(in);
original_length=Bits.readInt(in);
offset=Bits.readInt(in);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy