OnixS C++ FIX Engine  4.9.0
API Documentation
InputDataTraits Struct Reference

#include </work/build/include/OnixS/FIXEngine/FIX/InputDataTraits.h>

Public Types

enum  Enum { CompleteMessagesOnly = 0, CouldContainPartialMessages = 1 }
 

Detailed Description

This enumeration allows to setup decoder in dependent-decoding (i.e. decodeEachMessageIndependently == false) mode for particular characteristics of the input data stream.

CompleteMessagesOnly allows to perform decoding faster, but requires explicit call of Decoder::reset when someone error occurs or Decoder::decode returns NULL. Decoder::decode() will fire exception if such reset was omitted after exception.

This commonly prohibits usage of the mode for decoding streaming data like TCP/IP stream. On another hand the mode is highly recommended for the data distributed via UDP multicast or other packet transport which requires reset of decoder at someone strongly determined points.

CouldContainPartialMessages initiates a bit slower decoding then CompleteMessagesOnly but could be used for stream data decoding using following method:

Decoder decoder(templates, dictionary, false, InputDataTraits::CouldContainPartialMessages);
...
const Message *message = 0;
while(!message) {
/* consume some data */
decoder.tryDecode(buffer, offset, count, &message, &numberOfDecodedBytes);
}

Definition at line 46 of file InputDataTraits.h.

Member Enumeration Documentation

enum Enum
Enumerator
CompleteMessagesOnly 

Faster decoding but requires explicit decoder reset when error occurs.

CouldContainPartialMessages 

Slower decoding, allows to try to decode incomplete messages as well as handling of wrong/damaged data without subsequent explicit reset.

Definition at line 47 of file InputDataTraits.h.


The documentation for this struct was generated from the following file: