org.jnetpcap.packet
Class AbstractMessageHeader

java.lang.Object
  extended by org.jnetpcap.nio.JMemory
      extended by org.jnetpcap.nio.JBuffer
          extended by org.jnetpcap.packet.JHeader
              extended by org.jnetpcap.packet.JMappedHeader
                  extended by org.jnetpcap.packet.AbstractMessageHeader
All Implemented Interfaces:
JPayloadAccessor
Direct Known Subclasses:
Http, Sip

public abstract class AbstractMessageHeader
extends JMappedHeader

The Class AbstractMessageHeader.

Author:
Mark Bednarczyk, Sly Technologies, Inc.

Nested Class Summary
static class AbstractMessageHeader.MessageType
          The Enum MessageType.
 
Nested classes/interfaces inherited from class org.jnetpcap.packet.JHeader
JHeader.State
 
Nested classes/interfaces inherited from class org.jnetpcap.nio.JMemory
JMemory.Type
 
Field Summary
protected  java.lang.String rawHeader
          The raw header.
 
Fields inherited from class org.jnetpcap.packet.JHeader
annotatedHeader, BYTE, EMPTY_HEADER_ARRAY, isSubHeader, packet, state
 
Fields inherited from class org.jnetpcap.nio.JMemory
JNETPCAP_LIBRARY_NAME, MAX_DIRECT_MEMORY_DEFAULT, POINTER
 
Constructor Summary
AbstractMessageHeader()
           
 
Method Summary
protected abstract  void decodeFirstLine(java.lang.String line)
          Decode first line.
protected  void decodeHeader()
          Decode the http/sip header.
 AbstractMessageHeader.MessageType getMessageType()
          Gets the message type.
static int headerLength(JBuffer buffer, int offset)
          Header length.
 void setMessageType(AbstractMessageHeader.MessageType type)
          Sets the message type.
 
Methods inherited from class org.jnetpcap.packet.JMappedHeader
addField, addField, addField, clearFields, fieldArray, fieldDescription, fieldDescription, fieldDisplay, fieldDisplay, fieldLength, fieldLength, fieldOffset, fieldOffset, fieldValue, fieldValue, fieldValue, fieldValue, hasField, hasField, map, map
 
Methods inherited from class org.jnetpcap.packet.JHeader
decode, getAnnotatedHeader, getDescription, getFields, getGap, getGapLength, getGapOffset, getHeader, getHeaderLength, getHeaderOffset, getId, getIndex, getLength, getName, getNextHeaderId, getNextHeaderOffset, getNicname, getOffset, getPacket, getParent, getPayload, getPayloadLength, getPayloadOffset, getPostfix, getPostfixLength, getPostfixOffset, getPrefix, getPrefixLength, getPrefixOffset, getPreviousHeaderId, getPreviousHeaderOffset, getState, getSubHeaders, hasDescription, hasGap, hasNextHeader, hasPayload, hasPostfix, hasPrefix, hasPreviousHeader, hasSubHeaders, isFragmented, isGapTruncated, isHeaderTruncated, isPayloadTruncated, isPostfixTruncated, isPrefixTruncated, peer, peer, peerPayloadTo, setPacket, setSubHeaders, sizeof, toString, transferPayloadTo, transferPayloadTo, transferPayloadTo, validateHeader
 
Methods inherited from class org.jnetpcap.nio.JBuffer
findUTF8String, getByte, getByteArray, getByteArray, getByteArray, getDouble, getFloat, getInt, getLong, getShort, getUByte, getUInt, getUShort, getUTF8Char, getUTF8String, getUTF8String, getUTF8String, getUTF8String, isReadonly, order, order, peer, peer, peer, peer, setByte, setByteArray, setByteBuffer, setDouble, setFloat, setInt, setLong, setShort, setShort0, setUByte, setUInt, setUShort, transferFrom, transferFrom, transferFrom, transferTo, transferTo, transferTo
 
Methods inherited from class org.jnetpcap.nio.JMemory
availableDirectMemory, check, cleanup, createReference, isInitialized, isJMemoryBasedOwner, isOwner, maxDirectMemory, peer, reservedDirectMemory, setSize, size, softDirectMemory, toDebugString, toHexdump, toHexdump, totalActiveAllocated, totalAllocateCalls, totalAllocated, totalAllocatedSegments0To255Bytes, totalAllocatedSegments256OrAbove, totalDeAllocateCalls, totalDeAllocated, transferFrom, transferFrom, transferFromDirect, transferOwnership, transferTo, transferTo, transferTo, transferTo, transferTo, transferTo0
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

rawHeader

protected java.lang.String rawHeader
The raw header.

Constructor Detail

AbstractMessageHeader

public AbstractMessageHeader()
Method Detail

headerLength

@HeaderLength
public static int headerLength(JBuffer buffer,
                                            int offset)
Header length.

Parameters:
buffer - the buffer
offset - the offset
Returns:
the int

decodeFirstLine

protected abstract void decodeFirstLine(java.lang.String line)
Decode first line.

Parameters:
line - the line

decodeHeader

protected void decodeHeader()
Decode the http/sip header. First we need to convert raw bytes to a char's we can deal with since Http/sip header is text based. Once converted we can then accurately determine the Http/sip header length, type of request, etc...

Overrides:
decodeHeader in class JHeader

getMessageType

public AbstractMessageHeader.MessageType getMessageType()
Gets the message type.

Returns:
the message type

setMessageType

public void setMessageType(AbstractMessageHeader.MessageType type)
Sets the message type.

Parameters:
type - the new message type