/*** * Returns NTP packet reference identifier as IP address. * * @param packet NTP packet * @return the packet reference id (as IP address) in "%d.%d.%d.%d" format. */ public static String getRefAddress(NtpV3Packet packet) { int address = (packet == null) ? 0 : packet.getReferenceId(); return getHostAddress(address); }
/*** * Return human-readable name of message mode type as described in * RFC 1305. * @return mode name as string. */ @Override public String getModeName() { return NtpUtils.getModeName(getMode()); }
/*** * Convert NTP timestamp to Java standard time. * * @return NTP Timestamp in Java time */ public long getTime() { return getTime(ntpTime); }
/*** * Returns Stratum as defined in RFC-1305, which indicates the stratum level * of the local clock, with values defined as follows: 0=unspecified, * 1=primary ref clock, and all others a secondary reference (via NTP). * * @return Stratum level as defined in RFC-1305. */ @Override public int getStratum() { return ui(buf[STRATUM_INDEX]); }
/*** * Returns the reference id as defined in RFC-1305, which is * a 32-bit integer whose value is dependent on several criteria. * * @return the reference id as defined in RFC-1305. */ @Override public int getReferenceId() { return getInt(REFERENCE_ID_INDEX); }
/*** * Returns the transmit timestamp as defined in RFC-1305. * * @return the transmit timestamp as defined in RFC-1305. * Never returns a null object. */ @Override public TimeStamp getTransmitTimeStamp() { return getTimestamp(TRANSMIT_TIMESTAMP_INDEX); }
/*** * Set originate timestamp given NTP TimeStamp object. * If <code>ts</code> is null then zero time is used. * * @param ts NTP timestamp */ @Override public void setOriginateTimeStamp(TimeStamp ts) { setTimestamp(ORIGINATE_TIMESTAMP_INDEX, ts); }
/*** * Returns root dispersion (as defined in RFC-1305) in milliseconds. * * @return root dispersion in milliseconds */ @Override public long getRootDispersionInMillis() { long l = getRootDispersion(); return (l * 1000) / 65536L; }
/*** * Constructs a newly allocated NTP timestamp object * that represents the value represented by the string * in hexdecimal form (e.g. "c1a089bd.fc904f6d"). * @param hexStamp the hex timestamp * * @throws NumberFormatException - if the string does not contain a parsable timestamp. */ public TimeStamp(String hexStamp) throws NumberFormatException { ntpTime = decodeNtpHexString(hexStamp); }
/*** * Set reference clock identifier field with 32-bit unsigned integer value. * See RFC-1305 for description. * * @param refId reference clock identifier. */ @Override public void setReferenceId(int refId) { setInt(REFERENCE_ID_INDEX, refId); }
/*** * Returns NTP version number as defined in RFC-1305. * * @return NTP version number. */ @Override public int getVersion() { return (ui(buf[VERSION_INDEX]) >> VERSION_SHIFT) & 0x7; }
/*** * Return root delay as defined in RFC-1305, which is the total roundtrip delay * to the primary reference source, in seconds. Values can take positive and * negative values, depending on clock precision and skew. * * @return root delay as defined in RFC-1305. */ @Override public int getRootDelay() { return getInt(ROOT_DELAY_INDEX); }
/*** * Returns the originate time as defined in RFC-1305. * * @return the originate time. * Never returns null. */ @Override public TimeStamp getOriginateTimeStamp() { return getTimestamp(ORIGINATE_TIMESTAMP_INDEX); }
/*** * Set receive timestamp given NTP TimeStamp object. * If <code>ts</code> is null then zero time is used. * * @param ts timestamp */ @Override public void setReceiveTimeStamp(TimeStamp ts) { setTimestamp(RECEIVE_TIMESTAMP_INDEX, ts); }
/*** * Returns root dispersion (as defined in RFC-1305) in milliseconds * as double precision value. * * @return root dispersion in milliseconds */ @Override public double getRootDispersionInMillisDouble() { double l = getRootDispersion(); return l / 65.536; }
/*** * Set root delay as defined in RFC-1305. * * @param delay root delay * @since 3.4 */ @Override public void setRootDelay(int delay) { setInt(ROOT_DELAY_INDEX, delay); }
/*** * Returns root dispersion as defined in RFC-1305. * @return root dispersion. */ @Override public int getRootDispersion() { return getInt(ROOT_DISPERSION_INDEX); }
/*** * Returns mode as defined in RFC-1305 which is a 3-bit integer * whose value is indicated by the MODE_xxx parameters. * * @return mode as defined in RFC-1305. */ @Override public int getMode() { return (ui(buf[MODE_INDEX]) >> MODE_SHIFT) & 0x7; }