Пример #1
0
 private void UnmarkSimpleTokenForPropagation(SubscriptionToken token)
 {
     _cachier.UnmarkSubscriptionForResource(token.ResourceType);
     token.PropagationSubscriptionCounter--;
     if (token.PropagationSubscriptionCounter == 0)
     {
         _totalSubscriptions.Remove(token.ResourceName);
         if (token.SubscriptionCounter == 0 && token.PropagationSubscriptionCounter == 0)
         {
             _cachier.UnmarkSubscriptionForResource(token.ResourceType);
             _issuedTokens.Remove(token.ResourceName);
         }
     }
 }
Пример #2
0
 /// <summary>
 ///     Отписывается от обновления ресурса.
 /// </summary>
 /// <param name="token">Маркер обновления.</param>
 public void UnsubscribeForResourceChange(SubscriptionToken token)
 {
     lock (_issuedTokens)
     {
         if (token is CombinedSubscriptionToken)
         {
             var stoken = (token as CombinedSubscriptionToken);
             foreach (SubscriptionToken subscriptionToken in stoken.Tokens.Where(k => k.SubscriptionCounter > 0))
             {
                 UnmarkSimpleToken(subscriptionToken);
             }
             stoken.ClearTokens();
         }
         else
         {
             UnmarkSimpleToken(token);
         }
     }
 }
 internal void AddToken(SubscriptionToken token)
 {
     _tokens.Add(token);
     token.ResourceMarkedAsUnactual += TokenOnResourceMarkedAsUnactual;
 }
Пример #4
0
 /// <summary>
 ///     Merges the with subscription for resource change.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="token">The token.</param>
 /// <returns></returns>
 internal SubscriptionToken MergeWithSubscriptionForResourceChange <T>(SubscriptionToken token)
 {
     return(SubscribeForResourceChangeCommon(typeof(T), token, false));
 }