aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Iterator.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Iterator.cs')
-rw-r--r--Emby.Server.Implementations/IO/SharpCifs/Util/Sharpen/Iterator.cs53
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; }
+ }
+ }
+}