UPA C++ 8.0: generic messages in private streams

UPADevGuide asserts that

"All types of requests, functionality, and Domain Models can flow across a private stream, including (but not limited
to):
• Streaming Requests
• Snapshot Requests
• Posting
• Generic Messages
• Batch Requests
• Views
• All Thomson Reuters Domain Models & Custom Domain Models"

However it is not obvious how to use private streams when communicating exclusively with Generic messages.

I would have expected there to be a RSSL_GNMF_PRIVATE_STREAM flag to be available, but it is not.

How do you use Generic messages in a Private Stream?

Best Answer

  • Start by creating the private stream using a REQUEST message in the client and a REFRESH response that confirms the stream. With that new stream ID you can now send GENERIC messages back and forth.

    This paradigm is used by the new Elektron Content Services.

    Example private stream request message construction:

    RsslRequestMsg msg = RSSL_INIT_REQUEST_MSG;
    msg.flags = RSSL_RQMF_STREAMING | RSSL_RQMF_PRIVATE_STREAM;
    msg.msgBase.msgClass = RSSL_MC_REQUEST;
    ...

    Example generic message post-stream confirmation:

    RsslGenericMsg genMsg = RSSL_INIT_GENERIC_MSG;
    genMsg.flags = RSSL_GNMF_MESSAGE_COMPLETE;
    genMsg.msgBase.msgClass = RSSL_MC_GENERIC;
    ...