c#: Implement IList<T> to Eina.List.
authorBruno da Silva Belo <bruno.belo@expertisesolutions.com.br>
Wed, 11 Dec 2019 21:47:45 +0000 (18:47 -0300)
committerJongmin Lee <jm105.lee@samsung.com>
Thu, 12 Dec 2019 20:51:56 +0000 (05:51 +0900)
commit4150366beb8da40e156772473af8285f74d61ad8
treecbf4627c0c57936997f2a94f928a1720ad013e9e
parent66f391f073809596ad9bcb66bbd8d96e0c2cd41d
c#: Implement IList<T> to Eina.List.

Summary:
Container can have three configuration over `Own` and `OwnContent`:
`Own = true` and `OwnContent = true`;
`Own = true` and `OwnContent = false`;
`Own = false`and `OwnContent = false;
If someone try to instanciate the container with `Own = false` and `OwnContent = true`, a exception raises.

There is two Ownerships' behaviours in c#, where `IsReadOnly` is responsible and `IsReadOnly = !OwnContent`:
Full Ownership: User can use modify/Add/Remove operations over the container, this is implemented with `OwnContent = true`.
No Ownership: User **cannot** use modify/Add/Remove operations, this is implemented with `OwnContent = false`.

For the memory, `Own` frees the node, while `OwnContent` frees the data portion.
ref T8487

Reviewers: lauromoura, felipealmeida, YOhoho, segfaultxavi, jptiz

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8487

Differential Revision: https://phab.enlightenment.org/D10742
src/bin/eolian_mono/eolian/mono/parameter.hh
src/bindings/mono/eina_mono/eina_list.cs
src/tests/efl_mono/Eina.cs
src/tests/efl_mono/List.cs [new file with mode: 0644]
src/tests/efl_mono/meson.build