package uk.co.mmscomputing.device.capi.ncc;
import uk.co.mmscomputing.device.capi.*;
public class DataB3Ind extends CapiIndMsg{
private int nptr;
private int handle;
private int nlen;
private int flags;
private long n64ptr;
public DataB3Ind(Rider r){
super(r);
nptr =r.readDWord(); // 0: 32 bit native ptr to payload;
nlen =r.readWord(); // 4:
handle =r.readWord(); // 6:
flags =r.readWord(); // 8:
if(nptr==0){
n64ptr =r.readQWord(); //10: 64 bit native ptr to payload;
}
} //18
public int getHandle(){ return handle;}
public int getPayloadPtr(){ return nptr;}
public int getPayloadLength(){ return nlen;}
public byte[] getPayload(byte[] buf){
if(nptr!=0){
return jcapi.copyFromNative32bitDataPtr(buf,nptr,nlen);
}else{
return jcapi.copyFromNative64bitDataPtr(buf,n64ptr,nlen);
}
}
public String toString(){
String s=super.toString();
if(nptr!=0){
s+="nptr = 0x"+Integer.toHexString(nptr)+"\n";
}else{
s+="n64ptr = 0x"+Long.toHexString(n64ptr)+"\n";
}
s+="nlen = "+nlen+"\n";
s+="handle = "+handle+"\n";
s+="flags = 0"+Integer.toBinaryString(flags)+"b\n";
return s;
}
}