diff options
Diffstat (limited to 'Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Iterator.cs')
| -rw-r--r-- | Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Iterator.cs | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Iterator.cs b/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Iterator.cs new file mode 100644 index 000000000..634c7b404 --- /dev/null +++ b/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Iterator.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace SharpCifs.Util.Sharpen +{ + public interface ITerator + { + bool HasNext (); + object Next (); + void Remove (); + } + + public abstract class Iterator<T> : IEnumerator<T>, ITerator + { + private T _lastValue; + + object ITerator.Next () + { + return Next (); + } + + public abstract bool HasNext (); + public abstract T Next (); + public abstract void Remove (); + + bool IEnumerator.MoveNext () + { + if (HasNext ()) { + _lastValue = Next (); + return true; + } + return false; + } + + void IEnumerator.Reset () + { + throw new NotImplementedException (); + } + + void IDisposable.Dispose () + { + } + + T IEnumerator<T>.Current { + get { return _lastValue; } + } + + object IEnumerator.Current { + get { return _lastValue; } + } + } +} |
