/** * Decode the data in the buffer and set the all the values in the DTNTime * * @param dt Empty DTNTime to store decoded DTNTime * @param buf Serializable Buffer to read and recode DTNTime */ public static void decodeSDNV(DTNTime dt, IByteBuffer buf) { long[] decoded_seconds = new long[1]; long[] decoded_nanoseconds = new long[1]; SDNV.decode(buf, decoded_seconds); dt.set_seconds(decoded_seconds[0]); SDNV.decode(buf, decoded_nanoseconds); dt.set_nanoseconds(decoded_nanoseconds[0]); }
/** * decode the value from the buffer and return * * @param buf Buffer to read encoded value form * @param val Get the empty array and set the decoded value on the first index of array * @return Number of bytes decoded */ public int read_sdnv(IByteBuffer buf, int[] val) throws BlockProcessorTooShortException { int sdnv_len = SDNV.decode(buf, val); if (sdnv_len < 1) { throw new BlockProcessorTooShortException(); } assert (sdnv_len < 0) : TAG + "read sdnv: incorrect length"; return sdnv_len; }