Public Member Functions | |
Decoder (const std::string &xmlTemplates, const OnixS::FIX::Dictionary &fixDictionary, ISbeCustomCoderLibrary *customCoders=ONIXS_FIXENGINE_NULLPTR) | |
Decoder (const std::string &xmlTemplates, ISbeCustomCoderLibrary *customCoders=ONIXS_FIXENGINE_NULLPTR) | |
Decoder (ProtocolVersion::Enum baseVersion, const std::string &xmlTemplates, ISbeCustomCoderLibrary *customCoders=ONIXS_FIXENGINE_NULLPTR) | |
~Decoder () | |
const OnixS::FIX::Message & | decode (int templateId, int version, size_t rootBlockLength, const unsigned char *buffer, size_t bufferSize, size_t *numberOfDecodedBytes=ONIXS_FIXENGINE_NULLPTR) const |
const OnixS::FIX::Message & | decode (const unsigned char *buffer, size_t bufferSize, size_t *numberOfDecodedBytes=ONIXS_FIXENGINE_NULLPTR, int *templateId=ONIXS_FIXENGINE_NULLPTR, int *version=ONIXS_FIXENGINE_NULLPTR) const |
bool | tryDecode (int templateId, int version, size_t rootBlockLength, const unsigned char *buffer, size_t offset, size_t count, OnixS::FIX::Message *message, size_t *numberOfDecodedBytes) const |
OnixS::FIX::Dictionary | fixDictionary () const |
void | maximumNumberOfRepeatingGroupEntries (int value) |
int | maximumNumberOfRepeatingGroupEntries () const |
unsigned | schemaVersion () const |
unsigned | schemaId () const |
std::string | schemaSemanticVersion () const |
std::string | schemaHeaderType () const |
Static Public Member Functions | |
static Dictionary | generateFixDictionary (const std::string &sbeTemplateXml) |
static Dictionary | generateFixDictionary (ProtocolVersion::Enum baseVersion, const std::string &sbeTemplateXml) |
Decoder | ( | const std::string & | xmlTemplates, |
const OnixS::FIX::Dictionary & | fixDictionary, | ||
ISbeCustomCoderLibrary * | customCoders = ONIXS_FIXENGINE_NULLPTR ) |
Decoder | ( | const std::string & | xmlTemplates, |
ISbeCustomCoderLibrary * | customCoders = ONIXS_FIXENGINE_NULLPTR ) |
Decoder | ( | ProtocolVersion::Enum | baseVersion, |
const std::string & | xmlTemplates, | ||
ISbeCustomCoderLibrary * | customCoders = ONIXS_FIXENGINE_NULLPTR ) |
Creates a SBE to FIX Decoder for the FIX dictionary-independent mode.
The generic FIX dictionary is created by the provided SBE-template content, uses the specified FIX dictionary as a base and has a generic name.
baseVersion | The version of the FIX protocol which the dictionary becomes a base for the newly generated FIX dictionary. |
xmlTemplates | XML-based SBE templates used to generate the FIX dictionary. This FIX dictionary takes a generic identifier generated on a base of the XML content and baseVersion |
customCoders | The custom coders library. |
~Decoder | ( | ) |
The destructor.
const OnixS::FIX::Message & decode | ( | const unsigned char * | buffer, |
size_t | bufferSize, | ||
size_t * | numberOfDecodedBytes = ONIXS_FIXENGINE_NULLPTR, | ||
int * | templateId = ONIXS_FIXENGINE_NULLPTR, | ||
int * | version = ONIXS_FIXENGINE_NULLPTR ) const |
Decodes the given SBE stream chunk into the corresponding FIX Message using the message header.
This method decodes the given SBE stream chunk using the message header decoder that was built on a base of the SBE template.
[in] | buffer | The buffer that contains the SBE stream chunk to be decoded. |
[in] | bufferSize | The size of the buffer. |
[out] | numberOfDecodedBytes | The number of bytes that contained the encoded FIX Message. |
[out] | templateId | The identifier of the SBE template, that was used to decode the input data. |
[out] | version | The version of the SBE schema, that was used to decode the input data. |
An | exception if the message cannot be decoded. |
const OnixS::FIX::Message & decode | ( | int | templateId, |
int | version, | ||
size_t | rootBlockLength, | ||
const unsigned char * | buffer, | ||
size_t | bufferSize, | ||
size_t * | numberOfDecodedBytes = ONIXS_FIXENGINE_NULLPTR ) const |
Decodes the given SBE stream chunk into the corresponding FIX Message.
[in] | templateId | The identifier of the SBE template, used to decode the input data. |
[in] | version | The version of the SBE schema, used to decode the input data. |
[in] | rootBlockLength | The length of the root block. This value should be extracted from the message preamble, or from other source. |
[in] | buffer | The buffer that contains the SBE stream chunk to be decoded. |
[in] | bufferSize | The size of the buffer. |
[out] | numberOfDecodedBytes | The number of bytes that contains the encoded FIX Message. |
An | exception if the message cannot be decoded. |
OnixS::FIX::Dictionary fixDictionary | ( | ) | const |
|
static |
|
static |
int maximumNumberOfRepeatingGroupEntries | ( | ) | const |
The maximum number of repeating groups, allowed for decoded messages.
int
type. void maximumNumberOfRepeatingGroupEntries | ( | int | value | ) |
Manage 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 an instance - billions of entries, while normally there are just a few ones). This situation results in a memory exhausting and (often) significantly decrease 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 maximum possible number of entries in the valid input data, but less then the maximum integer value (default one). In a lot of real cases value of 10000 is good enough to detect broken data without a memory overloading.
Default is the maximum positive value for the int
type.
value | The number of repeating groups, allowed for decoded messages. |
std::string schemaHeaderType | ( | ) | const |
The name of the encoding type of the message header, which is the same for all messages in a schema.
unsigned schemaId | ( | ) | const |
The schema identifier.
std::string schemaSemanticVersion | ( | ) | const |
The semantic version of the SBE schema.
unsigned schemaVersion | ( | ) | const |
The maximum known version of the SBE schema.
bool tryDecode | ( | int | templateId, |
int | version, | ||
size_t | rootBlockLength, | ||
const unsigned char * | buffer, | ||
size_t | offset, | ||
size_t | count, | ||
OnixS::FIX::Message * | message, | ||
size_t * | numberOfDecodedBytes ) const |
Tries to decode the given SBE stream buffer into the corresponding FIX Message.
[in] | templateId | The identifier of the SBE template, used to decode the input data. |
[in] | version | The version of the SBE schema, used to decode the input data. |
[in] | rootBlockLength | The length of the root block. This value should be extracted from the message preamble, or from other source. |
[in] | buffer | The SBE 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. |
An | exception if the decoding error is detected. |