#include <OnixS/FIXEngine/FIX/FAST.h>
|
| Decoder (const std::string &xmlTemplates, const OnixS::FIX::Dictionary &fixDictionary, bool decodeEachMessageIndependently, InputDataTraits::Enum inputDataTraits) |
|
| Decoder (const std::string &xmlTemplates, bool decodeEachMessageIndependently, InputDataTraits::Enum inputDataTraits) |
|
| Decoder (ProtocolVersion::Enum baseVersionForGeneratedDictionary, const std::string &xmlTemplates, bool decodeEachMessageIndependently, InputDataTraits::Enum inputDataTraits) |
|
| Decoder (ProtocolVersion::Enum baseVersionForGeneratedDictionary, const std::string &xmlTemplates, const std::string &genericFixDictionaryId, bool decodeEachMessageIndependently, InputDataTraits::Enum inputDataTraits) |
|
| ~Decoder () |
|
InputDataTraits::Enum | inputDataTraits () const |
|
const OnixS::FIX::Message & | decode (const char *buffer, size_t bufferSize) |
|
const OnixS::FIX::Message & | decode (const unsigned char *buffer, size_t bufferSize) |
|
const OnixS::FIX::Message & | decode (const std::vector< char > &chunk) |
|
const OnixS::FIX::Message & | decode (const OnixS::Sockets::Bytes &chunk) |
|
bool | tryDecode (const char *buffer, size_t offset, size_t count, OnixS::FIX::Message *message, size_t *numberOfDecodedBytes) |
|
bool | tryDecode (const unsigned char *buffer, size_t offset, size_t count, OnixS::FIX::Message *message, size_t *numberOfDecodedBytes) |
|
void | reset () |
|
OnixS::FIX::Dictionary | fixDictionary () const |
|
void | maximumNumberOfRepeatingGroupEntries (int value) |
|
int | maximumNumberOfRepeatingGroupEntries () const |
|
|
static bool | tryDecodeUnsignedInteger (const char *buffer, size_t bufferSize, unsigned int *value, size_t *fieldLength) |
|
static bool | tryDecodeUnsignedInteger (const unsigned char *buffer, size_t bufferSize, unsigned int *value, size_t *fieldLength) |
|
static void | generateFixDictionary (const std::string &fastTemplateXml, const std::string &fixDictionaryId, std::string *fixDictionaryXml) |
|
static void | generateFixDictionary (ProtocolVersion::Enum baseVersion, const std::string &fastTemplateXml, const std::string &fixDictionaryId, std::string *fixDictionaryXml) |
|
Definition at line 129 of file FAST.h.
Creates a FAST to FIX Decoder.
- Parameters
-
xmlTemplates | XML-based FAST templates. |
fixDictionary | The customized FIX dictionary used for the decoded message. |
decodeEachMessageIndependently | The option to reset the previous values dictionaries before decoding a new FAST stream chunk. |
inputDataTraits | Traits of input data, has effect only when decodeEachMessageIndependently is false . See InputDataTraits::Enum for details. |
Creates a FAST to FIX Decoder for the FIX dictionary-independent mode.
The generic FIX dictionary is created by the provided FAST-template content, it uses the FIX 4.0 as a base FIX dictionary and has a generic name.
- Parameters
-
xmlTemplates | XML-based FAST templates. |
decodeEachMessageIndependently | The option to reset the previous values dictionaries before decoding a new FAST stream chunk. |
inputDataTraits | Traits of input data, has effect only when decodeEachMessageIndependently is false . See InputDataTraits::Enum for details. |
Creates a FAST to FIX Decoder for the FIX dictionary-independent mode.
The generic FIX dictionary is created by the provided FAST-template content, it uses the specified FIX dictionary as a base and has a generic name.
- Parameters
-
baseVersionForGeneratedDictionary | This version of the FIX protocol becomes the base for the newly generated FIX dictionary. |
xmlTemplates | XML-based FAST templates used to generate the FIX dictionary. This FIX dictionary takes a generic identifier generated on a base of the XML content and baseVersion |
decodeEachMessageIndependently | The option to reset the previous values dictionaries before decoding a new FAST stream chunk. |
inputDataTraits | Traits of input data, has effect only when decodeEachMessageIndependently is false . See InputDataTraits::Enum for details. |
Creates a FAST to FIX Decoder for the FIX dictionary-independent mode.
The generic FIX dictionary is created by the provided FAST-template content, it uses the specified FIX dictionary as a base and has the specified name.
- Note
- The new FIX dictionary instance will be generated if and only if there is no a FIX dictionary with the same name.
- Parameters
-
baseVersionForGeneratedDictionary | This version of the FIX protocol becomes the base for the newly generated FIX dictionary. |
xmlTemplates | XML-based FAST templates. |
genericFixDictionaryId | The identifier which is applied to the generic FIX dictionary. This FIX dictionary is generated using xmlTemplates and baseVersion . |
decodeEachMessageIndependently | The option to reset the previous values dictionaries before decoding a new FAST stream chunk. |
inputDataTraits | Traits of input data, has effect only when decodeEachMessageIndependently is false . See InputDataTraits::Enum for details. |
Decodes the given FAST stream chunk into the corresponding FIX Message.
- Parameters
-
buffer | The buffer that contains the FAST stream chunk to be decoded. |
bufferSize | The size of the buffer. |
- Warning
- The returned message is 'owned' by the Decoder.
-
The previously decoded message is freed by the Decoder when this method is called again.
- Exceptions
-
An | exception if the message cannot be decoded. |
- Returns
- the decoded FIX message.
Decodes the given FAST stream chunk into the corresponding FIX Message.
- Parameters
-
chunk | The FAST stream chunk to be decoded. |
- Warning
- The returned message is 'owned' by the Decoder.
-
The previously decoded message is freed by the Decoder when this method is called again.
- Exceptions
-
An | exception if the message cannot be decoded. |
- Returns
- the decoded FIX message.
The FIX dictionary used by the decoder instance.
- Returns
- The FIX dictionary currently used by the decoder instance. If the decoder was initialized with the FIX dictionary-independent mode, the method returns a reference to the internally generated FIX dictionary.
static void generateFixDictionary |
( |
const std::string & |
fastTemplateXml, |
|
|
const std::string & |
fixDictionaryId, |
|
|
std::string * |
fixDictionaryXml |
|
) |
| |
|
static |
Generates the FIX dictionary XML.
- Parameters
-
[in] | fastTemplateXml | The XML content of FAST template (the same as used to initialize Decoder). |
[in] | fixDictionaryId | The output FIX dictionary identifier (see "id" attribute of "FIX" node). |
[out] | fixDictionaryXml | The XML with the generated FIX dictionary. |
static void generateFixDictionary |
( |
ProtocolVersion::Enum |
baseVersion, |
|
|
const std::string & |
fastTemplateXml, |
|
|
const std::string & |
fixDictionaryId, |
|
|
std::string * |
fixDictionaryXml |
|
) |
| |
|
static |
Generates the FIX dictionary XML.
- Parameters
-
[in] | fastTemplateXml | The XML content of the FAST template (the same as used to initialize the Decoder). |
[in] | baseVersion | This version of the FIX protocol becomes the base for the newly generated FIX dictionary. |
[in] | fixDictionaryId | The output FIX dictionary identifier (see "id" attribute of "FIX" node). |
[out] | fixDictionaryXml | The XML with the generated FIX dictionary. |
Input data traits of the decoder.
- Returns
- Input data traits provided during the construction of the decoder.
void maximumNumberOfRepeatingGroupEntries |
( |
int |
value | ) |
|
Manages the maximum number of repeating groups, allowed for decoded messages.
This parameter is used during the decoding and is useful to detect a broken data, which, in particular cases, can 'need' to allocate an unexpectedly huge number of entries (for instance - billions of entries, while normally there are just a few ones). This situation results in memory exhausting and (often) significantly decreases the overall system performance.
To prevent the memory exhausting and negative consequences of that, this parameter should be configured with the value, which is greater then the maximum possible number of entries in valid input data, but less then the maximum integer value (default one). In a lot of real cases the value of 10000 is good enough to detect broken data without the memory overloading.
Default is the maximum positive value for int
type.
- Parameters
-
value | The number of repeating groups, allowed for decoded messages. |
int maximumNumberOfRepeatingGroupEntries |
( |
| ) |
const |
The maximum number of repeating groups, allowed for decoded messages.
- Returns
- The current number of repeating groups, allowed for decoded messages. The default value is the maximum positive value for
int
type.
Resets the state of the previous values dictionaries (sets the state of the previous values to undefined).
- See also
- decodeEachMessageIndependently.
bool tryDecode |
( |
const char * |
buffer, |
|
|
size_t |
offset, |
|
|
size_t |
count, |
|
|
OnixS::FIX::Message * |
message, |
|
|
size_t * |
numberOfDecodedBytes |
|
) |
| |
Tries to decode the given FAST stream buffer into the corresponding FIX Message.
- Parameters
-
[in] | buffer | The FAST stream chunk to be decoded. |
[in] | offset | The index in the buffer at which decoding begins. |
[in] | count | The number of bytes to analyze during the decoding. |
[out] | message | The pointer to the decoded FIX Message. |
[out] | numberOfDecodedBytes | The number of bytes that contained the encoded FIX Message. |
- Warning
- The message should point to an existing object. This object is not owned by the Decoder and should be managed by a user.
- Exceptions
-
An | exception if the decoding error is detected. |
- Returns
- 'true' if the given bytes could be decoded into a FIX message, otherwise - 'false'.
bool tryDecode |
( |
const unsigned char * |
buffer, |
|
|
size_t |
offset, |
|
|
size_t |
count, |
|
|
OnixS::FIX::Message * |
message, |
|
|
size_t * |
numberOfDecodedBytes |
|
) |
| |
static bool tryDecodeUnsignedInteger |
( |
const char * |
buffer, |
|
|
size_t |
bufferSize, |
|
|
unsigned int * |
value, |
|
|
size_t * |
fieldLength |
|
) |
| |
|
static |
Decodes the FAST-encoded unsigned integer.
- Parameters
-
buffer | The buffer that contains the FAST stream chunk to be decoded. |
bufferSize | The size of the buffer. |
value | The decoded value. |
fieldLength | The number of bytes that contained the encoded value. |
- Returns
- 'true' if the stop bit was found and the value was decoded, otherwise - 'false'.
static bool tryDecodeUnsignedInteger |
( |
const unsigned char * |
buffer, |
|
|
size_t |
bufferSize, |
|
|
unsigned int * |
value, |
|
|
size_t * |
fieldLength |
|
) |
| |
|
static |
The documentation for this class was generated from the following file: