In RFA and UPA, can we check if the time field contains high precision timestamp before decoding? Therefore, I can skip decoding that field. Using try/catch will hurt performance of the application.
To add to this, here are different valid encoded lengths:
2 bytes: hour, minute
3 bytes: hour, minute, second
5 bytes: hour, minute, second, millisecond
Everything above (2, 3, 5 byte encodings) can be handled by all supported versions of RFA, UPA/ETA, and EMA.
7 bytes: hour, minute, second, millisecond, and microsecond
8 byte: hour, minute, second, millisecond, microsecond, and nanosecond.
7 and 8 byte encodings can be handled by RFA8, UPA8 or higher, and all versions of Elektron SDK (ETA and EMA)
You can verify the type of field and its encoded length. If the field is time and its encoded length is 8, the time will contain nanoseconds precision. Then, the application can skip decoding this field.
This question was first asked in a MiFID IIwebinar (27th of Sep). Please see here: Introduction to MiFID II for Developers