I encode a RsslMap in a particular order, e.g.
912810RN0=TWEB 912810RP5=TWEB 912810RQ3=TWEB 912810RS9=TWEB
I feed this into a value-add payload cache (rsslPayloadEntryApply) and extract (rsslPayloadEntryRetrieve) on each client request.
With RSSL tracing enabled though the ordering is different:
<mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="912810RS9=TWEB" > </mapEntry> <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="912810RP5=TWEB" > </mapEntry> <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="912810RQ3=TWEB" > </mapEntry> <mapEntry flags="0x0" action="RSSL_MPEA_ADD_ENTRY" key="912810RN0=TWEB" > </mapEntry>
Please explain? Is it possible to send out an ordered symbol list? This looks like walking through a red-black tree underlying a "map" implementation. Is should be possible to publish an ordered list say through an RsslVector instead of a RsslMap.
On Elektron, similarly the symbol list .AV.HK for example does not match the ordering of the chain .AV.HK, consuming after hours.
This implies the ordering is an artifact of the TREP payload cache and thus cannot be avoided.