You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/src/MonoTorrent/RawTrackerTier.cs

98 lines
2.1 KiB

using System;
using System.Collections;
using System.Collections.Generic;
using MonoTorrent.BEncoding;
namespace MonoTorrent
{
public class RawTrackerTier : IList<string>
{
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<string> 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<string> GetEnumerator ()
{
foreach (BEncodedString v in Tier)
yield return v.Text;
}
IEnumerator IEnumerable.GetEnumerator ()
{
return GetEnumerator ();
}
}
}