Hi Rohan,
Yes, subscription sharing works as you have resumed.
What you found in the SmartDataAdapter documentation and turned out to be deceiving refers to a different aspect, that is, to subsequent invocations of "subscribe" due to the fact that the first invocation was later followed by "unsubscribe". In fact, if all clients that share the same item subscription should unsubscribe, the unsubscription would also be propagated to the Data Adapter. Then a new client may cause a new subscription.
Whether or not a single item should be defined to cover all client requests for some entity is left to the implementation.
We thing we have left enough degrees of freedom to let the implementer organize this aspect.
About the last question:
Lightstreamer sends real-time data, hence if C2 subscribes after U has occurred, U is now a past event and C2 should not receive it. If later the Data Adapter produces a U2 event, it will be sent to both C1 and C2.
However, we also manage the "snapshot", which is the current state of the item. If C2 subscribes and asks for the snapshot, it should receive U as the snapshot and the kernel takes care of this.
The concept of snapshot lends itself to various definitions. Please see paragraph 3.4.1 in the
General Concepts document for details.