From 0297d337d57cdb52075b337732a864961ff68162 Mon Sep 17 00:00:00 2001 From: Roxanne Skelly Date: Tue, 8 Jan 2019 10:50:16 -0800 Subject: [PATCH] Add some comments as per CR request --- .../src/avatars/AvatarMixerClientData.h | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/assignment-client/src/avatars/AvatarMixerClientData.h b/assignment-client/src/avatars/AvatarMixerClientData.h index 16054e3458..d1d6dd4d69 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.h +++ b/assignment-client/src/avatars/AvatarMixerClientData.h @@ -194,12 +194,26 @@ private: AvatarTraits::TraitMessageSequence _currentTraitsMessageSequence{ 0 }; + // Cache of trait versions sent in a given packet (indexed by sequence number) + // When an ack is received, the sequence number in the ack is used to look up + // the sent trait versions and they are copied to _perNodeAckedTraitVersions. + // We remember the data in _perNodePendingTraitVersions instead of requiring + // the client to return all of the versions for each trait it received in a given packet, + // reducing the size of the ack packet. std::unordered_map _perNodePendingTraitVersions; - std::unordered_map _lastSentTraitsTimestamps; - PerNodeTraitVersions _perNodeSentTraitVersions; + // Versions of traits that have been acked, which will be compared to incoming + // trait updates. Incoming updates going to a given node will be ignored if + // the ack for the previous packet (containing those versions) has not been + // received. PerNodeTraitVersions _perNodeAckedTraitVersions; + std::unordered_map _lastSentTraitsTimestamps; + + // cache of traits sent to a node which are compared to incoming traits to + // prevent sending traits that have already been sent. + PerNodeTraitVersions _perNodeSentTraitVersions; + std::atomic_bool _isIgnoreRadiusEnabled { false }; };