org.opennms.protocols.icmp
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
Fields inherited from class org.opennms.protocols.icmp.ICMPHeader |
CODE_BAD_IP_HEADER, CODE_COMMUNICATIONS_ADMIN_PROHIBITIED, CODE_DESTINATION_HOST_ADMIN_PROHIBITED, CODE_DESTINATION_HOST_UNKNOWN, CODE_DESTINATION_NETWORK_ADMIN_PROHIBITED, CODE_DESTINATION_NETWORK_UNKNOWN, CODE_FRAGMENTATION_NEEDED, CODE_HOST_PRECEDENCE_VIOLATION, CODE_HOST_UNREACHABLE, CODE_HOST_UNREACHABLE_FOR_TOS, CODE_NETWORK_UNREACHABLE, CODE_NETWORK_UNREACHABLE_FOR_TOS, CODE_PORT_UNREACHABLE, CODE_PRECEDENCE_CUTOFF_IN_EFFECT, CODE_PROTOCOL_UNREACHABLE, CODE_REDIRECT_FOR_HOST, CODE_REDIRECT_FOR_NETWORK, CODE_REDIRECT_FOR_TYPE_OF_SERVICE_AND_HOST, CODE_REDIRECT_FOR_TYPE_OF_SERVICE_AND_NETWORK, CODE_REQUIRED_OPTION_MISSING, CODE_SOURCE_HOST_ISOLATED, CODE_SOURCE_ROUTE_FAILED, CODE_TTL_EQ_ZERO_IN_REASSEMBLY, CODE_TTL_EQ_ZERO_IN_TRANSIT, m_checksum, m_code, m_ident, m_sequence, m_type, sm_seq, TYPE_ADDRESS_MASK_REPLY, TYPE_ADDRESS_MASK_REQUEST, TYPE_DESTINATION_UNREACHABLE, TYPE_ECHO_REPLY, TYPE_ECHO_REQUEST, TYPE_INFORMATION_REPLY, TYPE_INFORMATION_REQUEST, TYPE_PARAMETER_PROBLEM, TYPE_REDIRECT, TYPE_ROUTER_ADVERTISEMENT, TYPE_ROUTER_SOLICITATION, TYPE_SOURCE_QUENCH, TYPE_TIME_EXCEEDED, TYPE_TIMESTAMP_REPLY, TYPE_TIMESTAMP_REQUEST |
Constructor Summary |
TimestampRequest()
Creates a new ICMP Timestamp Request object. |
TimestampRequest(byte[] buf,
int offset)
Creates a new ICMP timestamp request from
the spcified data at the specific offset. |
Method Summary |
void |
computeChecksum()
Computes the ones compliment 16-bit checksum for
the ICMP message. |
int |
getOriginateTS()
Retreives the current timestamp of the
reqeust object. |
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. |
void |
setOriginateTS()
Sets the originate timestamp to the current
date in millisecond resolution. |
void |
setOriginateTS(int ts)
Sets the originate timestamp to the
passed value. |
int |
storeToBuffer(byte[] buf,
int offset)
Writes the ICMP address mask request out to the specified
buffer at the starting offset. |
byte[] |
toBytes()
Converts the object to an array of bytes. |
Methods inherited from class org.opennms.protocols.icmp.ICMPHeader |
byteToInt, byteToShort, computeChecksum, getChecksum, getCode, getIdentity, getNetworkSize, getSequenceId, getType, isEchoReply, isEchoRequest, nextSequenceId, setChecksum, setCode, setIdentity, setNextSequenceId, setSequenceId, setType |
Methods inherited from class java.lang.Object |
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait |
m_origStamp
private int m_origStamp
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:
InsufficientDataException
- Thrown if there
is not sufficent data in the buffer.IllegalArgumentException
- Thrown if the ICMP type
is not an Timestamp Request.
computeChecksum
public void computeChecksum()
- Computes the ones compliment 16-bit checksum for
the ICMP message.
- Overrides:
computeChecksum
in class ICMPHeader
storeToBuffer
public 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 ArrayIndexOutOfBoundsException is
thrown.
- Overrides:
storeToBuffer
in class ICMPHeader
- Parameters:
buf
- The storage buffer.offst
- The location to start in buf.- Returns:
- The new offset after storing to the buffer.
- Throws:
ArrayIndexOutOfBoundsException
- Thrown if the buffer
does not have enough storage space.
loadFromBuffer
public 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 InsufficientDataException 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:
InsufficientDataException
- Thrown if there
is not sufficent data in the buffer.IllegalArgumentException
- Thrown if the ICMP type
is not an Timestamp Request.
setOriginateTS
public void setOriginateTS()
- Sets the originate timestamp to the current
date in millisecond resolution.
- See Also:
Date.getTime()
setOriginateTS
public void setOriginateTS(int ts)
- Sets the originate timestamp to the
passed value.
- Parameters:
ts
- The timestamp in milliseconds
getOriginateTS
public int getOriginateTS()
- Retreives the current timestamp of the
reqeust object.
- Returns:
- The 32-bit timestamp in milliseconds.
toBytes
public byte[] toBytes()
- Converts the object to an array of bytes.
- Overrides:
toBytes
in class ICMPHeader