Class TimestampRequest

java.lang.Object
org.opennms.protocols.icmp.ICMPHeader
org.opennms.protocols.icmp.TimestampRequest

public final class TimestampRequest extends ICMPHeader
This is the implementation of an ICMP timestamp reqeust object. The object can be stored in a buffer to send or loaded from a received buffer. The class is marked final since it is not intended to be extended.
Version:
0.1
Author:
Brian Weaver
  • Constructor Details

    • TimestampRequest

      public TimestampRequest()
      Creates a new ICMP Timestamp Request object.
    • TimestampRequest

      public TimestampRequest(byte[] buf, int offset)
      Creates a new ICMP timestamp request from the spcified data at the specific offset.
      Parameters:
      buf - The buffer containing the data.
      offset - The start of the icmp data.
      Throws:
      IndexOutOfBoundsException - Thrown if there is not sufficent data in the buffer.
      IllegalArgumentException - Thrown if the ICMP type is not an Timestamp Request.
  • Method Details

    • computeChecksum

      public final void computeChecksum()
      Computes the ones compliment 16-bit checksum for the ICMP message.
      Overrides:
      computeChecksum in class ICMPHeader
    • storeToBuffer

      public final int storeToBuffer(byte[] buf, int offset)
      Writes the ICMP address mask request out to the specified buffer at the starting offset. If the buffer does not have sufficent data to store the information then an IndexOutOfBoundsException is thrown.
      Overrides:
      storeToBuffer in class ICMPHeader
      Parameters:
      buf - The storage buffer.
      offset - The location to start in buf.
      Returns:
      The new offset after storing to the buffer.
      Throws:
      IndexOutOfBoundsException - Thrown if the buffer does not have enough storage space.
    • loadFromBuffer

      public final int loadFromBuffer(byte[] buf, int offset)
      Reads the ICMP Address Mask Reqeust from the specified buffer and sets the internal fields equal to the data. If the buffer does not have sufficent data to restore the header then an IndexOutOfBoundsException is thrown by the method. If the buffer does not contain an address mask reqeust then an IllegalArgumentException is thrown.
      Overrides:
      loadFromBuffer in class ICMPHeader
      Parameters:
      buf - The buffer to read the data from.
      offset - The offset to start reading data.
      Returns:
      The new offset after reading the data.
      Throws:
      IndexOutOfBoundsException - Thrown if there is not sufficent data in the buffer.
      IllegalArgumentException - Thrown if the ICMP type is not an Timestamp Request.
    • setOriginateTS

      public final void setOriginateTS()
      Sets the originate timestamp to the current date in millisecond resolution.
      See Also:
    • setOriginateTS

      public final void setOriginateTS(int ts)
      Sets the originate timestamp to the passed value.
      Parameters:
      ts - The timestamp in milliseconds
    • getOriginateTS

      public final int getOriginateTS()
      Retreives the current timestamp of the reqeust object.
      Returns:
      The 32-bit timestamp in milliseconds.
    • toBytes

      public final byte[] toBytes()
      Converts the object to an array of bytes.
      Overrides:
      toBytes in class ICMPHeader