I have an EMA application that posts data to the RCC. As part of the connection sequence (register/tunnel/login) it receives a RefreshMsg like this:
RefreshMsg
streamId="5"
domain="System Domain"
RefreshComplete
PrivateStream
DoNotCache
state="Open / Ok / None / 'Login accepted by host 6805549f73b5 via ip-10-28-117-11.ec2.internal'"
itemGroup="00 00"
name="XXX"
Attrib dataType="ElementList"
ElementList
ElementEntry name="TRCE:MaxMessagesPerSecond" dataType="UInt" value="10000"
ElementListEnd
AttribEnd
RefreshMsgEnd
I would like to read the MaxMessagesPerSecond value and use it for subsequent posting. I could parse it out of this text, but is there a way to way to access directly via the msg argument in code like that below:
(Note the pseudocode line that tries to set MsgLimit)
void AppClient::onRefreshMsg(const RefreshMsg& msg, const OmmConsumerEvent& event) {
LOG_API.printf("%s\n%s\n", __FUNCTION__, msg.toString().c_str());
if (msg.getDomainType() == MMT_SYSTEM
&& event.getHandle() == _subStreamHandle
&& msg.getState().getStreamState() == OmmState::OpenEnum
&& msg.getState().getDataState() == OmmState::OkEnum)
{
SetState(AS_loggedin);
// Get the message limit if present.
UINT MsgLimit = msg.SomeFunction().someOtherFunction().etc()
}
}