protected abstract ICommonHeader<TTypeIdentifier>? ParseCommonHeader(
byte[] buffer,
int offset,
int length
)
Protected MustOverride Function ParseCommonHeader (
buffer As Byte(),
offset As Integer,
length As Integer
) As ICommonHeader(Of TTypeIdentifier)
protected:
virtual ICommonHeader<TTypeIdentifier>^ ParseCommonHeader(
array<unsigned char>^ buffer,
int offset,
int length
) abstract
function ParseCommonHeader(buffer, offset, length);
Derived classes need to provide a common header instance (i.e., class that implements ICommonHeaderTTypeIdentifier) for the output types; this will primarily include an ID of the Type that the data image represents. This parsing is only for common header information, actual parsing will be handled by output type via its ParseBinaryImage(Byte[], Int32, Int32) method. This header image should also be used to add needed complex state information about the output type being parsed if needed.
If there is not enough buffer available to parse common header (as determined by length), return null. Also, if the protocol allows frame length to be determined at the time common header is being parsed and there is not enough buffer to parse the entire frame, it will be optimal to prevent further parsing by returning null.