Package org.apache.commons.net.ntp

# Class TimeInfo

java.lang.Object
org.apache.commons.net.ntp.TimeInfo

public class TimeInfo extends Object
Wrapper class to network time packet messages (NTP, etc.) that computes related timing info and stats.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TimeInfo(NtpV3Packet message, long returnTimeMillis)`
  Create TimeInfo object with raw packet message and destination time received.
  `TimeInfo(NtpV3Packet msgPacket, long returnTimeMillis, boolean doComputeDetails)`
  Create TimeInfo object with raw packet message and destination time received.
  `TimeInfo(NtpV3Packet message, long returnTimeMillis, List<String> comments)`
  Create TimeInfo object with raw packet message and destination time received.
  `TimeInfo(NtpV3Packet message, long returnTimeMillis, List<String> comments, boolean doComputeDetails)`
  Create TimeInfo object with raw packet message and destination time received.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addComment(String comment)`
  Add comment (error/warning) to list of comments associated with processing of NTP parameters.
  `void`
  `computeDetails()`
  Compute and validate details of the NTP message packet.
  `boolean`
  `equals(Object obj)`
  Compares this object against the specified object.
  `InetAddress`
  `getAddress()`
  Gets host address from message datagram if available
  `List<String>`
  `getComments()`
  Gets the list of comments (if any) during processing of NTP packet.
  `Long`
  `getDelay()`
  Gets the round-trip network delay.
  `NtpV3Packet`
  `getMessage()`
  Gets the NTP message packet.
  `Long`
  `getOffset()`
  Gets the clock offset needed to adjust local clock to match remote clock.
  `long`
  `getReturnTime()`
  Gets the time at which time message packet was received by local machine.
  `int`
  `hashCode()`
  Computes a hash code for this object.

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### TimeInfo

    public TimeInfo(NtpV3Packet message, long returnTimeMillis)
    Create TimeInfo object with raw packet message and destination time received.
    Parameters:
      `message` - NTP message packet
      `returnTimeMillis` - destination receive time
    Throws:
      `IllegalArgumentException` - if message is null

  - ### TimeInfo

    public TimeInfo(NtpV3Packet msgPacket, long returnTimeMillis, boolean doComputeDetails)
    Create TimeInfo object with raw packet message and destination time received. Auto-computes details if computeDetails flag set otherwise this is delayed until computeDetails() is called. Delayed computation is for fast initialization when sub-millisecond timing is needed.
    Parameters:
      `msgPacket` - NTP message packet
      `returnTimeMillis` - destination receive time
      `doComputeDetails` - flag to pre-compute delay/offset values
    Throws:
      `IllegalArgumentException` - if message is null

  - ### TimeInfo

    public TimeInfo(NtpV3Packet message, long returnTimeMillis, List<String> comments)
    Create TimeInfo object with raw packet message and destination time received.
    Parameters:
      `message` - NTP message packet
      `returnTimeMillis` - destination receive time
      `comments` - List of errors/warnings identified during processing
    Throws:
      `IllegalArgumentException` - if message is null

  - ### TimeInfo

    public TimeInfo(NtpV3Packet message, long returnTimeMillis, List<String> comments, boolean doComputeDetails)
    Create TimeInfo object with raw packet message and destination time received. Auto-computes details if computeDetails flag set otherwise this is delayed until computeDetails() is called. Delayed computation is for fast initialization when sub-millisecond timing is needed.
    Parameters:
      `message` - NTP message packet
      `returnTimeMillis` - destination receive time
      `comments` - list of comments used to store errors/warnings with message
      `doComputeDetails` - flag to pre-compute delay/offset values
    Throws:
      `IllegalArgumentException` - if message is null

- ## Method Details

  - ### addComment

    public void addComment(String comment)
    Add comment (error/warning) to list of comments associated with processing of NTP parameters. If comment list not create then one will be created.
    Parameters:
      `comment` - the comment

  - ### computeDetails

    public void computeDetails()
    Compute and validate details of the NTP message packet. Computed fields include the offset and delay.

  - ### equals

    public boolean equals(Object obj)
    Compares this object against the specified object. The result is `true` if and only if the argument is not `null` and is a `TimeStamp` object that contains the same values as this object.
    Overrides:
      `equals` in class `Object`
    Parameters:
      `obj` - the object to compare with.
    Returns:
      `true` if the objects are the same; `false` otherwise.
    Since:
      3.4

  - ### getAddress

    public InetAddress getAddress()
    Gets host address from message datagram if available
    Returns:
      host address of available otherwise null
    Since:
      3.4

  - ### getComments

    public List<String> getComments()
    Gets the list of comments (if any) during processing of NTP packet.
    Returns:
      List or null if not yet computed

  - ### getDelay

    public Long getDelay()
    Gets the round-trip network delay. If null then could not compute the delay.
    Returns:
      Long or null if delay not available.

  - ### getMessage

    public NtpV3Packet getMessage()
    Gets the NTP message packet.
    Returns:
      NTP message packet.

  - ### getOffset

    public Long getOffset()
    Gets the clock offset needed to adjust local clock to match remote clock. If null then could not compute the offset.
    Returns:
      Long or null if offset not available.

  - ### getReturnTime

    public long getReturnTime()
    Gets the time at which time message packet was received by local machine.
    Returns:
      packet return time.

  - ### hashCode

    public int hashCode()
    Computes a hash code for this object. The result is the exclusive OR of the return time and the message hash code.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hash code value for this object.
    Since:
      3.4