OnixS C++ FIX Engine 4.13.0
API Documentation
Loading...
Searching...
No Matches
InputDataTraits Struct Reference

Public Types

enum  Enum

Detailed Description

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

The 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.

The CouldContainPartialMessages initiates a bit slower decoding then the 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 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.