public void Register(User user) { lock (_syncLock) { RegisterUser(user); _users[user.ID] = user; } }
public void Unregister(User user) { lock (_syncLock) { UnregisterUser(user); _users.Remove(user); } }
public void Unregister(User user) { ServiceWrapper.Wrap(() => { ExternalNotificationsCenter.Instance.Unregister(user); }, string.Format("User: '******'", user)); }
public IEnumerable<Notification> GetNotifications(User user) { return ServiceWrapper.Wrap(() => { return GetNotifications(user, TimeSpan.FromMinutes(2)); }, string.Format("User: '******'", user)); }
public IEnumerable<Notification> GetNotifications(User user, TimeSpan timeout) { var context = ManualNotificationsCenter.Instance.GetNotifications(user); if (!context.Wait(timeout, true)) { return new Notification[] { }; } return context.Result; }
public IEnumerable<Notification> GetNotifications(User user, TimeSpan timeout) { return ServiceWrapper.Wrap(() => { var context = LongPollingContext<User, Notification>.Manager.GetResultContext(user); if (!context.Wait(timeout, true)) { return new Notification[] { }; } return context.Result; }, string.Format("User: '******'", user)); }
protected override void UnregisterUser(User user) { LongPollingContext<User, Notification>.Manager.RemoveResults(user); }
protected override void RegisterUser(User user) { }
protected abstract void RegisterUser(User user);
private void DispatchNotifications() { User[] users; List<User> notifyUsers; lock (_syncLock) { var count = _users.Count; users = new User[count]; _users.Keys.CopyTo(users, 0); notifyUsers = users.Take(_eventsPerInterval).ToList(); notifyUsers.ForEach(u => { _users.Remove(u); _users[u] = u; }); } System.Console.WriteLine("Dispatching '{0}' notifications", notifyUsers.Count); DispatchNotifications(notifyUsers); System.Console.WriteLine("'{0}' notifications were dispatched...", notifyUsers.Count); }
protected override void UnregisterUser(User user) { _contextManager.RemoveResults(user); }
public IResultContext<IEnumerable<Notification>> GetNotifications(User user) { return _contextManager.GetResultContext(user); }
public static string GenerateQueue(User user) { return string.Format("{0}_{1}", user.Hostname, user.SetIndex); }
public static string GenerateCorrelation(User user) { return user.ID; }
public void Unregister(User user) { ManualNotificationsCenter.Instance.Unregister(user); }
public IEnumerable<Notification> GetNotifications(User user) { return GetNotifications(user, TimeSpan.FromMinutes(2)); }