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);)