using System.Collections; using System.Collections.Generic; using MonoTorrent.BEncoding; namespace MonoTorrent { public class RawTrackerTier : IList { public string this[int index] { get { return ((BEncodedString) Tier [index]).Text; } set { Tier [index] = new BEncodedString (value );} } internal BEncodedList Tier { get; set; } public RawTrackerTier () : this (new BEncodedList ()) { } public RawTrackerTier (BEncodedList tier) { Tier = tier; } public RawTrackerTier (IEnumerable announces) : this () { foreach (var v in announces) Add (v); } public int IndexOf (string item) { return Tier.IndexOf ((BEncodedString) item); } public void Insert (int index, string item) { Tier.Insert (index, (BEncodedString) item); } public void RemoveAt (int index) { Tier.RemoveAt (index); } public void Add (string item) { Tier.Add ((BEncodedString) item); } public void Clear () { Tier.Clear (); } public bool Contains (string item) { return Tier.Contains ((BEncodedString) item); } public void CopyTo (string[] array, int arrayIndex) { foreach (var s in this) array [arrayIndex ++] = s; } public bool Remove (string item) { return Tier.Remove ((BEncodedString) item); } public int Count { get { return Tier.Count; } } public bool IsReadOnly { get { return Tier.IsReadOnly; } } public IEnumerator GetEnumerator () { foreach (BEncodedString v in Tier) yield return v.Text; } IEnumerator IEnumerable.GetEnumerator () { return GetEnumerator (); } } }