/// <summary> /// Constructor. /// </summary> /// <param name="applicationEndpoint">App endpoint.</param> internal UcPresenceCache(ApplicationEndpoint applicationEndpoint) { m_presenceProvider = new UcPresenceProvider(applicationEndpoint); m_presenceProvider.Start(); m_presenceProvider.PresenceChanged += this.PresenceProvider_PresenceChanged; StaleInterval = TimeSpan.FromHours(2); m_staleTimer = new Timer(OnStaleTimerTick, null, StaleInterval, TimeSpan.FromMilliseconds(-1)); }
/// <summary> /// Clean up cache. /// </summary> internal void CleanupCache() { lock (m_syncObject) { UcPresenceProvider presenceProvider = m_presenceProvider; if (presenceProvider != null) { presenceProvider.Stop(); presenceProvider.PresenceChanged -= this.PresenceProvider_PresenceChanged; } ///Clear the cache. m_presenceSubscriptionsBySipUri.Clear(); } }