public GameSocketMessageHandler this[int headerId, GameSocketMessageHandlerPriority priority] { get { lock (_handlers) { if (!_handlers.ContainsKey(headerId)) { return(null); } switch (priority) { case GameSocketMessageHandlerPriority.HighPriority: { return(_handlers[headerId].HighPriority); } case GameSocketMessageHandlerPriority.LowPriority: { return(_handlers[headerId].LowPriority); } case GameSocketMessageHandlerPriority.DefaultAction: { return(_handlers[headerId].DefaultAction); } case GameSocketMessageHandlerPriority.Watcher: { return(_handlers[headerId].Watcher); } default: { return(null); } } } } set { lock (_handlers) { if (!_handlers.ContainsKey(headerId)) { _handlers.Add(headerId, new GameSocketMessageHandlers()); } switch (priority) { case GameSocketMessageHandlerPriority.HighPriority: { _handlers[headerId].HighPriority = value; break; } case GameSocketMessageHandlerPriority.LowPriority: { _handlers[headerId].LowPriority = value; break; } case GameSocketMessageHandlerPriority.DefaultAction: { _handlers[headerId].DefaultAction = value; break; } case GameSocketMessageHandlerPriority.Watcher: { _handlers[headerId].Watcher = value; break; } } if (value != null) { return; } if (_handlers[headerId].HighPriority == null && _handlers[headerId].LowPriority == null && _handlers[headerId].DefaultAction == null && _handlers[headerId].Watcher == null) { _handlers.Remove(headerId); } } } }
public GameSocketMessageHandler this[int headerId, GameSocketMessageHandlerPriority priority] { get { lock (_handlers) { if (!_handlers.ContainsKey(headerId)) return null; switch (priority) { case GameSocketMessageHandlerPriority.HighPriority: { return _handlers[headerId].HighPriority; } case GameSocketMessageHandlerPriority.LowPriority: { return _handlers[headerId].LowPriority; } case GameSocketMessageHandlerPriority.DefaultAction: { return _handlers[headerId].DefaultAction; } case GameSocketMessageHandlerPriority.Watcher: { return _handlers[headerId].Watcher; } default: { return null; } } } } set { lock (_handlers) { if (!_handlers.ContainsKey(headerId)) _handlers.Add(headerId, new GameSocketMessageHandlers()); switch (priority) { case GameSocketMessageHandlerPriority.HighPriority: { _handlers[headerId].HighPriority = value; break; } case GameSocketMessageHandlerPriority.LowPriority: { _handlers[headerId].LowPriority = value; break; } case GameSocketMessageHandlerPriority.DefaultAction: { _handlers[headerId].DefaultAction = value; break; } case GameSocketMessageHandlerPriority.Watcher: { _handlers[headerId].Watcher = value; break; } } if (value != null) return; if (_handlers[headerId].HighPriority == null && _handlers[headerId].LowPriority == null && _handlers[headerId].DefaultAction == null && _handlers[headerId].Watcher == null) { _handlers.Remove(headerId); } } } }