using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namespace uPLibrary.Networking.M2Mqtt { public class MqttClientCollection : IList, IEnumerable { // clients list private List clients; public MqttClientCollection() { this.clients = new List(); } #region IEnumerable ... public IEnumerator GetEnumerator() { return this.clients.GetEnumerator(); } #endregion #region IList ... public int IndexOf(MqttClient item) { return this.clients.IndexOf(item); } public void Insert(int index, MqttClient item) { lock (this.clients) { this.clients.Insert(index, item); } } public void RemoveAt(int index) { lock (this.clients) { this.clients.RemoveAt(index); } } public MqttClient this[int index] { get { return this.clients[index]; } set { this.clients[index] = value; } } public void Add(MqttClient item) { lock (this.clients) { this.clients.Add(item); } } public void Clear() { this.clients.Clear(); } public bool Contains(MqttClient item) { return this.clients.Contains(item); } public void CopyTo(MqttClient[] array, int arrayIndex) { this.clients.CopyTo(array, arrayIndex); } public int Count { get { return this.clients.Count; } } public bool IsReadOnly { get { return false; } } public bool Remove(MqttClient item) { lock (this.clients) { return this.clients.Remove(item); } } IEnumerator IEnumerable.GetEnumerator() { return this.clients.GetEnumerator(); } #endregion } }