diff --git a/src/bindings/mono/eina_mono/eina_iterator.cs b/src/bindings/mono/eina_mono/eina_iterator.cs index defbd9601d..b8ed06cad8 100644 --- a/src/bindings/mono/eina_mono/eina_iterator.cs +++ b/src/bindings/mono/eina_mono/eina_iterator.cs @@ -3,6 +3,7 @@ using System; using System.Runtime.InteropServices; using System.Collections.Generic; +using System.ComponentModel; using static Eina.TraitFunctions; using static Eina.IteratorNativeFunctions; @@ -10,6 +11,7 @@ using static Eina.IteratorNativeFunctions; namespace Eina { +[EditorBrowsable(EditorBrowsableState.Never)] public static class IteratorNativeFunctions { [DllImport(efl.Libs.Eina)] public static extern void @@ -30,25 +32,38 @@ public static class IteratorNativeFunctions } /// Wrapper around a native Eina iterator. -/// -/// Since EFL 1.23. +/// Since EFL 1.23. /// public class Iterator : IEnumerable, IDisposable { + [EditorBrowsable(EditorBrowsableState.Never)] public IntPtr Handle {get;set;} = IntPtr.Zero; + /// Whether this wrapper owns the native iterator. + /// Since EFL 1.23. + /// public bool Own {get;set;} = true; + [EditorBrowsable(EditorBrowsableState.Never)] public Iterator(IntPtr handle, bool own) { Handle = handle; Own = own; } + /// + /// Finalizer to be called from the Garbage Collector. + /// Since EFL 1.23. + /// ~Iterator() { Dispose(false); } + /// Disposes of this wrapper, releasing the native array if owned. + /// Since EFL 1.23. + /// + /// True if this was called from public method. False if + /// called from the C# finalizer. protected virtual void Dispose(bool disposing) { var h = Handle; @@ -71,17 +86,28 @@ public class Iterator : IEnumerable, IDisposable } } + /// Releases the native resources held by this instance. + /// Since EFL 1.23. + /// public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } + /// Releases the native resources held by this instance. + /// Since EFL 1.23. + /// public void Free() { Dispose(); } + /// + /// Releases the native iterator. + /// Since EFL 1.23. + /// + /// The native array. public IntPtr Release() { IntPtr h = Handle; @@ -89,11 +115,20 @@ public class Iterator : IEnumerable, IDisposable return h; } + /// Sets own. + /// Since EFL 1.23. + /// + /// If own the object. public void SetOwnership(bool own) { Own = own; } + /// + /// Go to the next one. + /// Since EFL 1.23. + /// + /// public bool Next(out T res) { IntPtr data; @@ -108,16 +143,29 @@ public class Iterator : IEnumerable, IDisposable return true; } + /// + /// Locks the container of the iterator. + /// Since EFL 1.23. + /// + /// true on success, false otherwise. public bool Lock() { return eina_iterator_lock(Handle); } + /// + /// Unlocks the container of the iterator. + /// Since EFL 1.23. + /// + /// true on success, false otherwise. public bool Unlock() { return eina_iterator_unlock(Handle); } + /// Gets an Enumerator for this iterator. + /// Since EFL 1.23. + /// public IEnumerator GetEnumerator() { for (T curr; Next(out curr);)