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 and 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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 Detail

    - #### 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 Detail

    - #### 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.

    - #### getAddress

          public InetAddress getAddress()

      Gets host address from message datagram if available
      Returns:
        host address of available otherwise null

    - #### 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.