I assume StreamState::CLOSED_RECOVER means currently closed but client is still subscribed to the item and (hopefully) ticks may start to come. Is it correct?
StreamState::CLOSED_RECOVER indicates the stream is closed, typically unobtainable or identity indeterminable due to a comms outage. The item may be available in the future.
Since item stream is closed, applicaiton has to re-subscribe the item if you wish to receive the data. In some scenario, the item status may come with some status text, the application should logs the status text and reports it to system admin/user.
You may find the description about the steamstate, data state from EMA C++ Reference Manual which locates in folder Docs(UPA_Portal.html-> EMA C++ Reference Manual)
Does EMA c++ api deliver ClosedRecover to the app? I was under the impression that api will internally keep retrying!
The Application can receive the Closed_Recover. There are SingleOpen and AllowSuspectData Elements that are passed via the Attrib can effect how state information is processed. You can find more details from RDM Usage Guide(EMACPP_RDMUsageGuide.pdf) under section 1.2 3.4.6 Single Open and Allow Suspect Data.