TimeInfo
Date: 2016-06-23

org.apache.commons.net.ntp

## Class TimeInfo

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

-     public class TimeInfo
      extends java.lang.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 returnTime)` Create TimeInfo object with raw packet message and destination time received.
    `TimeInfo(NtpV3Packet msgPacket, long returnTime, boolean doComputeDetails)` Create TimeInfo object with raw packet message and destination time received.
    `TimeInfo(NtpV3Packet message, long returnTime, java.util.List<java.lang.String> comments)` Create TimeInfo object with raw packet message and destination time received.
    `TimeInfo(NtpV3Packet message, long returnTime, java.util.List<java.lang.String> comments, boolean doComputeDetails)` Create TimeInfo object with raw packet message and destination time received.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addComment(java.lang.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(java.lang.Object obj)` Compares this object against the specified object.
    `java.net.InetAddress` | `getAddress()` Get host address from message datagram if available
    `java.util.List<java.lang.String>` | `getComments()` Return list of comments (if any) during processing of NTP packet.
    `java.lang.Long` | `getDelay()` Get round-trip network delay.
    `NtpV3Packet` | `getMessage()` Returns NTP message packet.
    `java.lang.Long` | `getOffset()` Get clock offset needed to adjust local clock to match remote clock.
    `long` | `getReturnTime()` Returns time at which time message packet was received by local machine.
    `int` | `hashCode()` Computes a hashcode 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 returnTime)

      Create TimeInfo object with raw packet message and destination time received.
      Parameters:
        `message` - NTP message packet
        `returnTime` - destination receive time
      Throws:
        `java.lang.IllegalArgumentException` - if message is null

    - #### TimeInfo

          public TimeInfo(NtpV3Packet message,
                  long returnTime,
                  java.util.List<java.lang.String> comments)

      Create TimeInfo object with raw packet message and destination time received.
      Parameters:
        `message` - NTP message packet
        `returnTime` - destination receive time
        `comments` - List of errors/warnings identified during processing
      Throws:
        `java.lang.IllegalArgumentException` - if message is null

    - #### TimeInfo

          public TimeInfo(NtpV3Packet msgPacket,
                  long returnTime,
                  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 intialization when sub-millisecond timing is needed.
      Parameters:
        `msgPacket` - NTP message packet
        `returnTime` - destination receive time
        `doComputeDetails` - flag to pre-compute delay/offset values
      Throws:
        `java.lang.IllegalArgumentException` - if message is null

    - #### TimeInfo

          public TimeInfo(NtpV3Packet message,
                  long returnTime,
                  java.util.List<java.lang.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 intialization when sub-millisecond timing is needed.
      Parameters:
        `message` - NTP message packet
        `returnTime` - destination receive time
        `comments` - list of comments used to store errors/warnings with message
        `doComputeDetails` - flag to pre-compute delay/offset values
      Throws:
        `java.lang.IllegalArgumentException` - if message is null

  - ### Method Detail

    - #### addComment

          public void addComment(java.lang.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.

    - #### getComments

          public java.util.List<java.lang.String> getComments()

      Return list of comments (if any) during processing of NTP packet.
      Returns:
        List or null if not yet computed

    - #### getDelay

          public java.lang.Long getDelay()

      Get round-trip network delay. If null then could not compute the delay.
      Returns:
        Long or null if delay not available.

    - #### getOffset

          public java.lang.Long getOffset()

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

    - #### getMessage

          public NtpV3Packet getMessage()

      Returns NTP message packet.
      Returns:
        NTP message packet.

    - #### getAddress

          public java.net.InetAddress getAddress()

      Get host address from message datagram if available
      Returns:
        host address of available otherwise null
      Since:
        3.4

    - #### getReturnTime

          public long getReturnTime()

      Returns time at which time message packet was received by local machine.
      Returns:
        packet return time.

    - #### equals

          public boolean equals(java.lang.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 `java.lang.Object`
      Parameters:
        `obj` - the object to compare with.
      Returns:
        `true` if the objects are the same; `false` otherwise.
      Since:
        3.4

    - #### hashCode

          public int hashCode()

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