Class AbstractPacket.AbstractHeader

java.lang.Object
org.pcap4j.packet.AbstractPacket.AbstractHeader
All Implemented Interfaces:
Serializable, Packet.Header
Direct Known Subclasses:
AbstractPppPacket.AbstractPppHeader, ArpPacket.ArpHeader, BsdLoopbackPacket.BsdLoopbackHeader, DnsPacket.DnsHeader, Dot11ManagementPacket.Dot11ManagementHeader, Dot1qVlanTagPacket.Dot1qVlanTagHeader, EthernetPacket.EthernetHeader, GtpV1Packet.GtpV1Header, IcmpIdentifiablePacket.IcmpIdentifiableHeader, IcmpV4CommonPacket.IcmpV4CommonHeader, IcmpV4DestinationUnreachablePacket.IcmpV4DestinationUnreachableHeader, IcmpV4ParameterProblemPacket.IcmpV4ParameterProblemHeader, IcmpV4RedirectPacket.IcmpV4RedirectHeader, IcmpV4SourceQuenchPacket.IcmpV4SourceQuenchHeader, IcmpV4TimeExceededPacket.IcmpV4TimeExceededHeader, IcmpV6CommonPacket.IcmpV6CommonHeader, IcmpV6DestinationUnreachablePacket.IcmpV6DestinationUnreachableHeader, IcmpV6HomeAgentAddressDiscoveryReplyPacket.IcmpV6HomeAgentAddressDiscoveryReplyHeader, IcmpV6HomeAgentAddressDiscoveryRequestPacket.IcmpV6HomeAgentAddressDiscoveryRequestHeader, IcmpV6MobilePrefixAdvertisementPacket.IcmpV6MobilePrefixAdvertisementHeader, IcmpV6MobilePrefixSolicitationPacket.IcmpV6MobilePrefixSolicitationHeader, IcmpV6NeighborAdvertisementPacket.IcmpV6NeighborAdvertisementHeader, IcmpV6NeighborSolicitationPacket.IcmpV6NeighborSolicitationHeader, IcmpV6PacketTooBigPacket.IcmpV6PacketTooBigHeader, IcmpV6ParameterProblemPacket.IcmpV6ParameterProblemHeader, IcmpV6RedirectPacket.IcmpV6RedirectHeader, IcmpV6RouterAdvertisementPacket.IcmpV6RouterAdvertisementHeader, IcmpV6RouterSolicitationPacket.IcmpV6RouterSolicitationHeader, IcmpV6TimeExceededPacket.IcmpV6TimeExceededHeader, IpV4Packet.IpV4Header, IpV6ExtFragmentPacket.IpV6ExtFragmentHeader, IpV6ExtOptionsPacket.IpV6ExtOptionsHeader, IpV6ExtRoutingPacket.IpV6ExtRoutingHeader, IpV6ExtUnknownPacket.IpV6ExtUnknownHeader, IpV6Packet.IpV6Header, LinuxSllPacket.LinuxSllHeader, LlcPacket.LlcHeader, RadiotapPacket.RadiotapHeader, SctpPacket.SctpHeader, SnapPacket.SnapHeader, Ssh2BinaryPacket.Ssh2BinaryHeader, Ssh2DebugPacket.Ssh2DebugHeader, Ssh2DisconnectPacket.Ssh2DisconnectHeader, Ssh2IgnorePacket.Ssh2IgnoreHeader, Ssh2KexDhInitPacket.Ssh2KexDhInitHeader, Ssh2KexDhReplyPacket.Ssh2KexDhReplyHeader, Ssh2KexInitPacket.Ssh2KexInitHeader, Ssh2NewKeysPacket.Ssh2NewKeysHeader, Ssh2ServiceAcceptPacket.Ssh2ServiceAcceptHeader, Ssh2ServiceRequestPacket.Ssh2ServiceRequestHeader, Ssh2UnimplementedPacket.Ssh2UnimplementedHeader, Ssh2VersionExchangePacket.Ssh2VersionExchangeHeader, TcpPacket.TcpHeader, UdpPacket.UdpHeader
Enclosing class:
AbstractPacket

public abstract static class AbstractPacket.AbstractHeader extends Object implements Packet.Header
Abstract immutable header class.
Since:
pcap4j 0.9.1
Version:
pcap4j 0.9.1
See Also:
  • Field Details

  • Constructor Details

    • AbstractHeader

      protected AbstractHeader()
  • Method Details

    • getRawFields

      protected abstract List<byte[]> getRawFields()
      Returns a list of byte arrays which represents this header's fields. This method is called by calcLength() and buildRawData().
      Returns:
      a list of byte arrays which represents this header's fields
    • calcLength

      protected int calcLength()
      This method calculates the value length() will return by adding up the lengths of byte arrays in the list getRawFields() returns.
      Returns:
      a calculated length
    • length

      public int length()
      Returns the header length in bytes. This method calls calcLength() and caches the return value when it is called for the first time, and then, this method returns the cached value from the second time.
      Specified by:
      length in interface Packet.Header
      Returns:
      the length of the byte stream of the header represented by this object in bytes
    • buildRawData

      protected byte[] buildRawData()
      This method builds the value getRawData() will return by concatenating the byte arrays in the list getRawFields() returns.
      Returns:
      a raw data built
    • getRawData

      public byte[] getRawData()
      Returns this header's raw data. This method calls buildRawData() and caches the return value when it is called for the first time, and then, this method returns the cached value from the second time. More correctly, this method returns a copy of the cached value, so that the cache can't be changed.
      Specified by:
      getRawData in interface Packet.Header
      Returns:
      the raw data of this packet's header, namely a piece of the byte stream which is actually sent through real network
    • buildHexString

      protected String buildHexString()
      This method builds the value toHexString() will return using the return value of getRawData(). Each octet in this return value is separated by a white space. (e.g. 00 01 02 03 aa bb cc)
      Returns:
      a hex string representation of this object
    • toHexString

      public String toHexString()
      Returns the hex string representation of this object. This method calls buildHexString() and caches the return value when it is called for the first time, and then, this method returns the cached value from the second time.
      Returns:
      a hex string representation of this object
    • buildString

      protected String buildString()
      This method builds the value toString() will return.
      Returns:
      a string representation of this object
    • toString

      public String toString()
      Returns a string representation of the object. This method calls buildString() and caches the return value when it is called for the first time, and then, this method returns the cached value from the second time.
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object obj)
      Indicates whether some other object is "equal to" this one using return values of getRawData(). This method should be overridden so that it does more strict comparisons more efficiently.
      Overrides:
      equals in class Object
    • calcHashCode

      protected int calcHashCode()
      This method builds the value hashCode() will return using the byte array getRawData() returns. This method may be better to be overridden for performance reason.
      Returns:
      a calculated hash code value for the object
    • hashCode

      public int hashCode()
      Returns a hash code value for the object. This method calls calcHashCode() and caches the return value when it is called for the first time, and then, this method returns the cached value from the second time.
      Overrides:
      hashCode in class Object