tree f6dd4cc7e7c9052f81b5a274474a2e4455e75be9
parent cafa7cfdd3835427e879afbb0f5984538c11fea8
author Jay Logue <jaylogue@google.com> 1575934316 -0800
committer yunhanw <yunhanw@google.com> 1578012837 -0800

Support for WDM subscriptions over connections

-- Various changes supporting use of WDM subscriptions over connection-oriented transports.
As part of this effort, a number of general bugs were also fixed.

-- Use AutoRequestAck feature of ExchangeContext for all WRM subscription exchanges.  This
allows the code in SubscriptionClient and SubscriptionHandler classes to be neutral with
regard to connection-oriented/conectionless transports when sending Weave messages.

-- Re-wrote the handling of subscription termination in the SubscriptionClient and
SubscriptionHandler classes.  This greatly simplified the logic, making it easier to reason
about the correctness of the code.  This change also resolves WEAV-2367.

-- Added code to detect binding failures and terminate any associated subscriptions.  This
ensures, for example, that a subscription is terminated whenever its underlying connection
is lost.  This change also fixed a long-standing bug related to connectionless subscriptions
wherein a session failure would not immediate result in the failure of a subscription.

-- Fixed a bug in SubscriptionClient where the OnSubscriptionTerminated event was not
delivered to the application in certain cases.  This left the application unaware that the
underlying subscription was gone.  This fix necessitated various changes to the WDM
functional tests which had been coded to assume the erroneous behavior.

-- Fixed a bug in SubscriptionClient and SubscriptionHandler where the standalone ACK for a
StatusReport received in response to a SubscribeCancelRequest would never be sent.

-- Revised ifdefs in SubscriptionClient and UdpateClient so that both can be built with WRM
disabled. (Note that there are various hard dependencies on WRM in the test tools unrelated
to subscription/update support.  These were not addressed.)

-- Added interface documentation describing new subscription termination behavior.

-- Minor logging clean-ups in TraitData and StatusReportStr().

Updated WDM functional tests

-- Updated the happy-based WDM functional tests to accommodate changes to the
SubscriptionClient and SubscriptionHandler implementations introduced as a result of adding
support for WDM over connection-oriented transports.

-- Changed numerous python test scripts that have hard-coded dependencies on particular C++
method names appearing in log output.

-- Fixed logic bugs in the MockWdmSubscriptionInitiator/Responder classes that depended on
the existence of particular bugs in SubscriptionClient and SubscriptionHandler, which have
now been fixed.

-- Added additional logging as an aid to understanding the behavior of the
MockWdmSubscriptionInitiator/Responder classes.

-- Added option to TestWdmNext tool to enable use of WDM over a TCP connection.  Note that,
as of yet, there are no automated tests that exercise this feature.
