package org.kne.cloud.network.srv6; import java.io.EOFException; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.ReadableByteChannel; import java.nio.channels.WritableByteChannel; import java.util.UUID; public class SEQSSegmentRoutingTLV extends IPv6SegmentRoutingTLV { public SEQSSegmentRoutingTLV(ByteBuffer klalbHeader) { super(klalbHeader); } @Override public String toString() { return "SEQSSegmentRoutingTLV [getSequence()=" + getSequence() + "]"; } public SEQSSegmentRoutingTLV(long sequence,UUID uuid, boolean promise,boolean keeporder/*,int flownumber,long flowsequence*/) { super(IPv6SegmentRoutingTLV.SEQS); setSequence(sequence); setUUID(uuid); setPromise(promise); setKeepOrder(keeporder); //setFlowNumber(flownumber); //setFlowSequence(flowsequence); //getData().limit(14); //getData().limit(22); getData().limit(30); } public void setUUID(UUID uuid) { getData().putLong(14,uuid.getMostSignificantBits()); getData().putLong(22,uuid.getLeastSignificantBits()); } public UUID getUUID() { return new UUID(getData().getLong(14),getData().getLong(22)); } @Override public void writeToChannel(WritableByteChannel dto) throws IOException { super.writeToChannel(dto); } @Override public void readFromChannel(ReadableByteChannel din, long length) throws IOException { super.readFromChannel(din, length); } public long getSequence() { return getData().getLong(6); } public void setSequence(long sequence) { getData().putLong(6,sequence); } public int getFlowNumber() { return getData().getInt(2); } public void setFlowNumber(int flowsequence) { getData().putInt(2,flowsequence); } /*public long getFlowSequence() { return getData().getLong(14); } public void setFlowSequence(long flowsequence) { getData().putLong(14,flowsequence); }*/ public boolean isPromise() { return getData().get(0)!=0?true:false; } public void setPromise(boolean promise) { if(promise) { getData().put(0, (byte) 1); }else { getData().put(0, (byte) 0); } } public boolean isKeepOrder() { return getData().get(1)!=0?true:false; } public void setKeepOrder(boolean keeporder) { if(keeporder) { getData().put(1, (byte) 1); }else { getData().put(1, (byte) 0); } } }