How to use a custom symbol instead of SOH
Intro
FA C++ supports custom symbols instead of SOH on per session basis. For this purpose, the TagsDelimiter parameter is used.
The default delimiter is SOH.
The TagsDelimiter parameter is configured through SessionExtraParameters and through the engine.properties file. If the parameter is set through a configuration file, either symbols ("S", "|", "^", etc.) or Hex code (0x24, 0x7C, 0x5E, etc.) are applicable.
If a forbidden symbol is chosen for a delimiter, the following error is raised with the message: "The forbidden tags delimiter is specified".
In order to use the TagsDelimiter parameter for an acceptor, you should set a value for the default session in the config file: Session.Default.TagsDelimiter.
The session always uses the tags delimiter from the default session for the very first messages while a connection is established (sending a logon, sending a confirm logon, and receiving an answer with a logon or a logout). You can call the Session::isInEstablishingConnectionMode method to get the current mode and the Session::getCurrentTagsDelimiter method to get the currently used delimiter.
If the tags delimiter is not specified for the default session as well, the new session uses the value specified in the engine.properties file.
If the tags delimiter is not specified in the engine.properties file, the new session uses the 0x01 symbol (SOH).
The tagsDelimiter is added as an argument in the following methods:
StorageMgr::create
FIXMessage::toString
FIXMessage::::toRaw
FIXMessage::prepare
FIXMsgProcessor::parse
FIXMsgProcessor::check
FIXMsgProcessor::checkFields
GenericPreparedMessage::GenericPreparedMessage (constructor)