summaryrefslogtreecommitdiff
path: root/src/bindings
diff options
context:
space:
mode:
Diffstat (limited to 'src/bindings')
-rw-r--r--src/bindings/cxx/ecore_cxx/Ecore.hh15
-rw-r--r--src/bindings/cxx/ecore_cxx/Ecore_Manual.hh15
-rw-r--r--src/bindings/cxx/eet_cxx/Eet.hh15
-rw-r--r--src/bindings/cxx/eet_cxx/eet_composite.hh15
-rw-r--r--src/bindings/cxx/eet_cxx/eet_register.hh15
-rw-r--r--src/bindings/cxx/eet_cxx/eet_type.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/Eina.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_accessor.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_aligned_union.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_array.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_clone_allocators.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_copy_traits.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_deleter.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_eo_concrete_fwd.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_error.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_fold.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_function.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_future.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_inarray.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_inlist.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_integer_sequence.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_iterator.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_list.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_lists_auxiliary.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_log.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_logical.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_optional.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_pp.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_ptrarray.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_ptrlist.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_range_types.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_ref.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_strbuf.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_string_view.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_stringshare.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_thread.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_throw.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_tuple.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_tuple_c.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_tuple_unwrap.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_type_traits.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_value.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_variant.hh15
-rw-r--r--src/bindings/cxx/eina_cxx/eina_workarounds.hh15
-rw-r--r--src/bindings/cxx/eldbus_cxx/Eldbus.hh15
-rw-r--r--src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh15
-rw-r--r--src/bindings/cxx/eldbus_cxx/eldbus_basic.hh15
-rw-r--r--src/bindings/cxx/eldbus_cxx/eldbus_error.hh15
-rw-r--r--src/bindings/cxx/eldbus_cxx/eldbus_freedesktop.hh15
-rw-r--r--src/bindings/cxx/eldbus_cxx/eldbus_integer_sequence.hh15
-rw-r--r--src/bindings/cxx/eldbus_cxx/eldbus_message.hh15
-rw-r--r--src/bindings/cxx/eldbus_cxx/eldbus_message_arguments.hh15
-rw-r--r--src/bindings/cxx/eldbus_cxx/eldbus_proxy_call.hh15
-rw-r--r--src/bindings/cxx/eldbus_cxx/eldbus_raw_tuple.hh15
-rw-r--r--src/bindings/cxx/eldbus_cxx/eldbus_service.hh15
-rw-r--r--src/bindings/cxx/eldbus_cxx/eldbus_signature_traits.hh15
-rw-r--r--src/bindings/cxx/eo_cxx/Eo.hh15
-rw-r--r--src/bindings/cxx/eo_cxx/efl_object_impl.hh15
-rw-r--r--src/bindings/cxx/eo_cxx/eo_concrete.hh15
-rw-r--r--src/bindings/cxx/eo_cxx/eo_cxx_interop.hh15
-rw-r--r--src/bindings/cxx/eo_cxx/eo_event.hh15
-rw-r--r--src/bindings/cxx/eo_cxx/eo_init.hh15
-rw-r--r--src/bindings/cxx/eo_cxx/eo_ops.hh15
-rw-r--r--src/bindings/cxx/eo_cxx/eo_private.hh15
-rw-r--r--src/bindings/cxx/eo_cxx/eo_wref.hh15
-rw-r--r--src/bindings/meson.build5
-rw-r--r--src/bindings/mono/ca.ruleset.in334
-rw-r--r--src/bindings/mono/efl_mono.dll.config.in17
-rw-r--r--src/bindings/mono/efl_mono/AssemblyInfo.cs.in3
-rw-r--r--src/bindings/mono/efl_mono/GenericModel.cs10
-rw-r--r--src/bindings/mono/efl_mono/ItemFactory.cs7
-rw-r--r--src/bindings/mono/efl_mono/UserModel.cs19
-rw-r--r--src/bindings/mono/efl_mono/efl_all.cs78
-rw-r--r--src/bindings/mono/efl_mono/efl_csharp_application.cs122
-rw-r--r--src/bindings/mono/efl_mono/efl_libs.cs.in15
-rw-r--r--src/bindings/mono/efl_mono/efl_libs.csv.in15
-rw-r--r--src/bindings/mono/efl_mono/meson.build24
-rw-r--r--src/bindings/mono/efl_sharp.csproj.in48
-rw-r--r--src/bindings/mono/eina_mono/eina_accessor.cs50
-rw-r--r--src/bindings/mono/eina_mono/eina_array.cs332
-rw-r--r--src/bindings/mono/eina_mono/eina_binbuf.cs19
-rw-r--r--src/bindings/mono/eina_mono/eina_common.cs21
-rw-r--r--src/bindings/mono/eina_mono/eina_config.cs15
-rw-r--r--src/bindings/mono/eina_mono/eina_container_common.cs172
-rw-r--r--src/bindings/mono/eina_mono/eina_environment.cs53
-rw-r--r--src/bindings/mono/eina_mono/eina_error.cs150
-rw-r--r--src/bindings/mono/eina_mono/eina_hash.cs70
-rw-r--r--src/bindings/mono/eina_mono/eina_inarray.cs22
-rw-r--r--src/bindings/mono/eina_mono/eina_inlist.cs22
-rw-r--r--src/bindings/mono/eina_mono/eina_iterator.cs22
-rw-r--r--src/bindings/mono/eina_mono/eina_list.cs386
-rw-r--r--src/bindings/mono/eina_mono/eina_log.cs19
-rw-r--r--src/bindings/mono/eina_mono/eina_promises.cs23
-rw-r--r--src/bindings/mono/eina_mono/eina_slice.cs116
-rw-r--r--src/bindings/mono/eina_mono/eina_strbuf.cs20
-rw-r--r--src/bindings/mono/eina_mono/eina_stringshare.cs30
-rw-r--r--src/bindings/mono/eina_mono/eina_value.cs627
-rw-r--r--src/bindings/mono/eina_mono/meson.build3
-rw-r--r--src/bindings/mono/eldbus_mono/eldbus_common.cs433
-rw-r--r--src/bindings/mono/eldbus_mono/eldbus_config.cs15
-rw-r--r--src/bindings/mono/eldbus_mono/eldbus_connection.cs29
-rw-r--r--src/bindings/mono/eldbus_mono/eldbus_message.cs19
-rw-r--r--src/bindings/mono/eldbus_mono/eldbus_object.cs30
-rw-r--r--src/bindings/mono/eldbus_mono/eldbus_pending.cs17
-rw-r--r--src/bindings/mono/eldbus_mono/eldbus_proxy.cs42
-rw-r--r--src/bindings/mono/eldbus_mono/eldbus_service.cs17
-rw-r--r--src/bindings/mono/eo_mono/EoWrapper.cs228
-rw-r--r--src/bindings/mono/eo_mono/FunctionWrapper.cs139
-rw-r--r--src/bindings/mono/eo_mono/FunctionWrapper_Unix.cs36
-rw-r--r--src/bindings/mono/eo_mono/FunctionWrapper_Windows.cs26
-rw-r--r--src/bindings/mono/eo_mono/NativeModule.cs60
-rw-r--r--src/bindings/mono/eo_mono/NativeModule_Unix.cs28
-rw-r--r--src/bindings/mono/eo_mono/NativeModule_Windows.cs26
-rw-r--r--src/bindings/mono/eo_mono/WrapperSupervisor.cs34
-rw-r--r--src/bindings/mono/eo_mono/iwrapper.cs716
-rw-r--r--src/bindings/mono/eo_mono/workaround.cs260
-rw-r--r--src/bindings/mono/meson.build185
117 files changed, 5049 insertions, 1135 deletions
diff --git a/src/bindings/cxx/ecore_cxx/Ecore.hh b/src/bindings/cxx/ecore_cxx/Ecore.hh
index bd2cd7e..aa83ab3 100644
--- a/src/bindings/cxx/ecore_cxx/Ecore.hh
+++ b/src/bindings/cxx/ecore_cxx/Ecore.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef _EFL_ECORE_CXX_ECORE_HH 16#ifndef _EFL_ECORE_CXX_ECORE_HH
2#define _EFL_ECORE_CXX_ECORE_HH 17#define _EFL_ECORE_CXX_ECORE_HH
3 18
diff --git a/src/bindings/cxx/ecore_cxx/Ecore_Manual.hh b/src/bindings/cxx/ecore_cxx/Ecore_Manual.hh
index 19ec978..86c034e 100644
--- a/src/bindings/cxx/ecore_cxx/Ecore_Manual.hh
+++ b/src/bindings/cxx/ecore_cxx/Ecore_Manual.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef _EFL_ECORE_CXX_ECORE_MANUAL_HH 16#ifndef _EFL_ECORE_CXX_ECORE_MANUAL_HH
2#define _EFL_ECORE_CXX_ECORE_MANUAL_HH 17#define _EFL_ECORE_CXX_ECORE_MANUAL_HH
3 18
diff --git a/src/bindings/cxx/eet_cxx/Eet.hh b/src/bindings/cxx/eet_cxx/Eet.hh
index 002d73a..46c0946 100644
--- a/src/bindings/cxx/eet_cxx/Eet.hh
+++ b/src/bindings/cxx/eet_cxx/Eet.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EET_HH_ 16#ifndef EET_HH_
2#define EET_HH_ 17#define EET_HH_
3 18
diff --git a/src/bindings/cxx/eet_cxx/eet_composite.hh b/src/bindings/cxx/eet_cxx/eet_composite.hh
index 2c8f6be..def2bbc 100644
--- a/src/bindings/cxx/eet_cxx/eet_composite.hh
+++ b/src/bindings/cxx/eet_cxx/eet_composite.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_EET_COMPOSITE_HH_ 16#ifndef EFL_EET_COMPOSITE_HH_
2#define EFL_EET_COMPOSITE_HH_ 17#define EFL_EET_COMPOSITE_HH_
3 18
diff --git a/src/bindings/cxx/eet_cxx/eet_register.hh b/src/bindings/cxx/eet_cxx/eet_register.hh
index b18da36..f198148 100644
--- a/src/bindings/cxx/eet_cxx/eet_register.hh
+++ b/src/bindings/cxx/eet_cxx/eet_register.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_EET_REGISTER_HH_ 16#ifndef EFL_EET_REGISTER_HH_
2#define EFL_EET_REGISTER_HH_ 17#define EFL_EET_REGISTER_HH_
3 18
diff --git a/src/bindings/cxx/eet_cxx/eet_type.hh b/src/bindings/cxx/eet_cxx/eet_type.hh
index e12bc98..b7bd9ea 100644
--- a/src/bindings/cxx/eet_cxx/eet_type.hh
+++ b/src/bindings/cxx/eet_cxx/eet_type.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef _EET_TYPE_HH 16#ifndef _EET_TYPE_HH
2#define _EET_TYPE_HH 17#define _EET_TYPE_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/Eina.hh b/src/bindings/cxx/eina_cxx/Eina.hh
index 85226d4..da82702 100644
--- a/src/bindings/cxx/eina_cxx/Eina.hh
+++ b/src/bindings/cxx/eina_cxx/Eina.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_HH_ 16#ifndef EINA_HH_
2#define EINA_HH_ 17#define EINA_HH_
3/** 18/**
diff --git a/src/bindings/cxx/eina_cxx/eina_accessor.hh b/src/bindings/cxx/eina_cxx/eina_accessor.hh
index 4aefc51..17e95c2 100644
--- a/src/bindings/cxx/eina_cxx/eina_accessor.hh
+++ b/src/bindings/cxx/eina_cxx/eina_accessor.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_ACCESSOR_HH_ 16#ifndef EINA_ACCESSOR_HH_
2#define EINA_ACCESSOR_HH_ 17#define EINA_ACCESSOR_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_aligned_union.hh b/src/bindings/cxx/eina_cxx/eina_aligned_union.hh
index eabe878..a1c7be9 100644
--- a/src/bindings/cxx/eina_cxx/eina_aligned_union.hh
+++ b/src/bindings/cxx/eina_cxx/eina_aligned_union.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_EINA_EINA_ALIGNED_UNION_HH_ 16#ifndef EFL_EINA_EINA_ALIGNED_UNION_HH_
2#define EFL_EINA_EINA_ALIGNED_UNION_HH_ 17#define EFL_EINA_EINA_ALIGNED_UNION_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_array.hh b/src/bindings/cxx/eina_cxx/eina_array.hh
index 0c9bd59..7911664 100644
--- a/src/bindings/cxx/eina_cxx/eina_array.hh
+++ b/src/bindings/cxx/eina_cxx/eina_array.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_ARRAY_HH_ 16#ifndef EINA_ARRAY_HH_
2#define EINA_ARRAY_HH_ 17#define EINA_ARRAY_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_clone_allocators.hh b/src/bindings/cxx/eina_cxx/eina_clone_allocators.hh
index 15e97ad..5bc6c36 100644
--- a/src/bindings/cxx/eina_cxx/eina_clone_allocators.hh
+++ b/src/bindings/cxx/eina_cxx/eina_clone_allocators.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_CLONE_ALLOCATORS_HH_ 16#ifndef EINA_CLONE_ALLOCATORS_HH_
2#define EINA_CLONE_ALLOCATORS_HH_ 17#define EINA_CLONE_ALLOCATORS_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_copy_traits.hh b/src/bindings/cxx/eina_cxx/eina_copy_traits.hh
index e6e0164..badf60d 100644
--- a/src/bindings/cxx/eina_cxx/eina_copy_traits.hh
+++ b/src/bindings/cxx/eina_cxx/eina_copy_traits.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1/// 16///
2/// @file eo_concrete.hh 17/// @file eo_concrete.hh
3/// 18///
diff --git a/src/bindings/cxx/eina_cxx/eina_deleter.hh b/src/bindings/cxx/eina_cxx/eina_deleter.hh
index 7831dfd..4584da1 100644
--- a/src/bindings/cxx/eina_cxx/eina_deleter.hh
+++ b/src/bindings/cxx/eina_cxx/eina_deleter.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_DELETERS_HH_ 16#ifndef EINA_DELETERS_HH_
2#define EINA_DELETERS_HH_ 17#define EINA_DELETERS_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_eo_concrete_fwd.hh b/src/bindings/cxx/eina_cxx/eina_eo_concrete_fwd.hh
index 60aa84f..6d7f5c6 100644
--- a/src/bindings/cxx/eina_cxx/eina_eo_concrete_fwd.hh
+++ b/src/bindings/cxx/eina_cxx/eina_eo_concrete_fwd.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_EO_CONCRETE_FWD_HH 16#ifndef EINA_EO_CONCRETE_FWD_HH
2#define EINA_EO_CONCRETE_FWD_HH 17#define EINA_EO_CONCRETE_FWD_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_error.hh b/src/bindings/cxx/eina_cxx/eina_error.hh
index 24e41a8..99cecee 100644
--- a/src/bindings/cxx/eina_cxx/eina_error.hh
+++ b/src/bindings/cxx/eina_cxx/eina_error.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef _EINA_ERROR_HH 16#ifndef _EINA_ERROR_HH
2#define _EINA_ERROR_HH 17#define _EINA_ERROR_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_fold.hh b/src/bindings/cxx/eina_cxx/eina_fold.hh
index 167e0df..9359d35 100644
--- a/src/bindings/cxx/eina_cxx/eina_fold.hh
+++ b/src/bindings/cxx/eina_cxx/eina_fold.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_EINA_FOLD_HH_ 16#ifndef EFL_EINA_FOLD_HH_
2#define EFL_EINA_FOLD_HH_ 17#define EFL_EINA_FOLD_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_function.hh b/src/bindings/cxx/eina_cxx/eina_function.hh
index cef6da5..d7e51eb 100644
--- a/src/bindings/cxx/eina_cxx/eina_function.hh
+++ b/src/bindings/cxx/eina_cxx/eina_function.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_EINA_FUNCTION_HH 16#ifndef EFL_EINA_FUNCTION_HH
2#define EFL_EINA_FUNCTION_HH 17#define EFL_EINA_FUNCTION_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_future.hh b/src/bindings/cxx/eina_cxx/eina_future.hh
index 34fa8bd..19aea9d 100644
--- a/src/bindings/cxx/eina_cxx/eina_future.hh
+++ b/src/bindings/cxx/eina_cxx/eina_future.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_FUTURE_HH_ 16#ifndef EINA_FUTURE_HH_
2#define EINA_FUTURE_HH_ 17#define EINA_FUTURE_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_inarray.hh b/src/bindings/cxx/eina_cxx/eina_inarray.hh
index 5a2c7f4..0e860de 100644
--- a/src/bindings/cxx/eina_cxx/eina_inarray.hh
+++ b/src/bindings/cxx/eina_cxx/eina_inarray.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_INARRAY_HH_ 16#ifndef EINA_INARRAY_HH_
2#define EINA_INARRAY_HH_ 17#define EINA_INARRAY_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_inlist.hh b/src/bindings/cxx/eina_cxx/eina_inlist.hh
index 8804034..dbf879c 100644
--- a/src/bindings/cxx/eina_cxx/eina_inlist.hh
+++ b/src/bindings/cxx/eina_cxx/eina_inlist.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_INLIST_HH_ 16#ifndef EINA_INLIST_HH_
2#define EINA_INLIST_HH_ 17#define EINA_INLIST_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_integer_sequence.hh b/src/bindings/cxx/eina_cxx/eina_integer_sequence.hh
index f99c871..2c7907a 100644
--- a/src/bindings/cxx/eina_cxx/eina_integer_sequence.hh
+++ b/src/bindings/cxx/eina_cxx/eina_integer_sequence.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_CXX_EINA_INTEGER_SEQUENCE_HH 16#ifndef EINA_CXX_EINA_INTEGER_SEQUENCE_HH
2#define EINA_CXX_EINA_INTEGER_SEQUENCE_HH 17#define EINA_CXX_EINA_INTEGER_SEQUENCE_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_iterator.hh b/src/bindings/cxx/eina_cxx/eina_iterator.hh
index 1a8fedd..0e0cb82 100644
--- a/src/bindings/cxx/eina_cxx/eina_iterator.hh
+++ b/src/bindings/cxx/eina_cxx/eina_iterator.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_ITERATOR_HH_ 16#ifndef EINA_ITERATOR_HH_
2#define EINA_ITERATOR_HH_ 17#define EINA_ITERATOR_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_list.hh b/src/bindings/cxx/eina_cxx/eina_list.hh
index d5b6287..7697519 100644
--- a/src/bindings/cxx/eina_cxx/eina_list.hh
+++ b/src/bindings/cxx/eina_cxx/eina_list.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_LIST_HH_ 16#ifndef EINA_LIST_HH_
2#define EINA_LIST_HH_ 17#define EINA_LIST_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_lists_auxiliary.hh b/src/bindings/cxx/eina_cxx/eina_lists_auxiliary.hh
index 924dd73..60e81ba 100644
--- a/src/bindings/cxx/eina_cxx/eina_lists_auxiliary.hh
+++ b/src/bindings/cxx/eina_cxx/eina_lists_auxiliary.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef _EINA_LISTS_AUXILIARY_HH 16#ifndef _EINA_LISTS_AUXILIARY_HH
2#define _EINA_LISTS_AUXILIARY_HH 17#define _EINA_LISTS_AUXILIARY_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_log.hh b/src/bindings/cxx/eina_cxx/eina_log.hh
index 1567485..c287b7b 100644
--- a/src/bindings/cxx/eina_cxx/eina_log.hh
+++ b/src/bindings/cxx/eina_cxx/eina_log.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_EINA_LOG_HH 16#ifndef EFL_EINA_LOG_HH
2#define EFL_EINA_LOG_HH 17#define EFL_EINA_LOG_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_logical.hh b/src/bindings/cxx/eina_cxx/eina_logical.hh
index d53d354..f8155d5 100644
--- a/src/bindings/cxx/eina_cxx/eina_logical.hh
+++ b/src/bindings/cxx/eina_cxx/eina_logical.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_EINA_LOGICAL_HH 16#ifndef EFL_EINA_LOGICAL_HH
2#define EFL_EINA_LOGICAL_HH 17#define EFL_EINA_LOGICAL_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_optional.hh b/src/bindings/cxx/eina_cxx/eina_optional.hh
index 70a5cc2..5454f0c 100644
--- a/src/bindings/cxx/eina_cxx/eina_optional.hh
+++ b/src/bindings/cxx/eina_cxx/eina_optional.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_OPTIONAL_HH_ 16#ifndef EINA_OPTIONAL_HH_
2#define EINA_OPTIONAL_HH_ 17#define EINA_OPTIONAL_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_pp.hh b/src/bindings/cxx/eina_cxx/eina_pp.hh
index 22a6a22..28c71e1 100644
--- a/src/bindings/cxx/eina_cxx/eina_pp.hh
+++ b/src/bindings/cxx/eina_cxx/eina_pp.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1 16
2#ifndef EINA_PP_HH 17#ifndef EINA_PP_HH
3#define EINA_PP_HH 18#define EINA_PP_HH
diff --git a/src/bindings/cxx/eina_cxx/eina_ptrarray.hh b/src/bindings/cxx/eina_cxx/eina_ptrarray.hh
index b2f6ef5..1e5da9d 100644
--- a/src/bindings/cxx/eina_cxx/eina_ptrarray.hh
+++ b/src/bindings/cxx/eina_cxx/eina_ptrarray.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_PTRARRAY_HH_ 16#ifndef EINA_PTRARRAY_HH_
2#define EINA_PTRARRAY_HH_ 17#define EINA_PTRARRAY_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_ptrlist.hh b/src/bindings/cxx/eina_cxx/eina_ptrlist.hh
index 988658b..2c2416c 100644
--- a/src/bindings/cxx/eina_cxx/eina_ptrlist.hh
+++ b/src/bindings/cxx/eina_cxx/eina_ptrlist.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_PTRLIST_HH_ 16#ifndef EINA_PTRLIST_HH_
2#define EINA_PTRLIST_HH_ 17#define EINA_PTRLIST_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_range_types.hh b/src/bindings/cxx/eina_cxx/eina_range_types.hh
index 4f05d73..0c38b64 100644
--- a/src/bindings/cxx/eina_cxx/eina_range_types.hh
+++ b/src/bindings/cxx/eina_cxx/eina_range_types.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_RANGE_TYPES_HH_ 16#ifndef EINA_RANGE_TYPES_HH_
2#define EINA_RANGE_TYPES_HH_ 17#define EINA_RANGE_TYPES_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_ref.hh b/src/bindings/cxx/eina_cxx/eina_ref.hh
index 8a3b4e8..0fca02b 100644
--- a/src/bindings/cxx/eina_cxx/eina_ref.hh
+++ b/src/bindings/cxx/eina_cxx/eina_ref.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_REF_HH 16#ifndef EINA_REF_HH
2#define EINA_REF_HH 17#define EINA_REF_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_strbuf.hh b/src/bindings/cxx/eina_cxx/eina_strbuf.hh
index c81a98f..56c6697 100644
--- a/src/bindings/cxx/eina_cxx/eina_strbuf.hh
+++ b/src/bindings/cxx/eina_cxx/eina_strbuf.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_CXX_STRBUF_HH 16#ifndef EINA_CXX_STRBUF_HH
2#define EINA_CXX_STRBUF_HH 17#define EINA_CXX_STRBUF_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_string_view.hh b/src/bindings/cxx/eina_cxx/eina_string_view.hh
index 577742e..77798db 100644
--- a/src/bindings/cxx/eina_cxx/eina_string_view.hh
+++ b/src/bindings/cxx/eina_cxx/eina_string_view.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_STRING_VIEW_HH_ 16#ifndef EINA_STRING_VIEW_HH_
2#define EINA_STRING_VIEW_HH_ 17#define EINA_STRING_VIEW_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_stringshare.hh b/src/bindings/cxx/eina_cxx/eina_stringshare.hh
index e7e2f67..e666d41 100644
--- a/src/bindings/cxx/eina_cxx/eina_stringshare.hh
+++ b/src/bindings/cxx/eina_cxx/eina_stringshare.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef _EINA_STRINGSHARE_HH 16#ifndef _EINA_STRINGSHARE_HH
2#define _EINA_STRINGSHARE_HH 17#define _EINA_STRINGSHARE_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_thread.hh b/src/bindings/cxx/eina_cxx/eina_thread.hh
index f12c577..bd0cad8 100644
--- a/src/bindings/cxx/eina_cxx/eina_thread.hh
+++ b/src/bindings/cxx/eina_cxx/eina_thread.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_THREAD_HH_ 16#ifndef EINA_THREAD_HH_
2#define EINA_THREAD_HH_ 17#define EINA_THREAD_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_throw.hh b/src/bindings/cxx/eina_cxx/eina_throw.hh
index 3eb382b..0e39323 100644
--- a/src/bindings/cxx/eina_cxx/eina_throw.hh
+++ b/src/bindings/cxx/eina_cxx/eina_throw.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_CXX_THROW 16#ifndef EFL_CXX_THROW
2 17
3#ifdef EFL_CXX_NO_EXCEPTIONS 18#ifdef EFL_CXX_NO_EXCEPTIONS
diff --git a/src/bindings/cxx/eina_cxx/eina_tuple.hh b/src/bindings/cxx/eina_cxx/eina_tuple.hh
index 45545c3..c0ea02b 100644
--- a/src/bindings/cxx/eina_cxx/eina_tuple.hh
+++ b/src/bindings/cxx/eina_cxx/eina_tuple.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_EINA_EINA_TUPLE_HH_ 16#ifndef EFL_EINA_EINA_TUPLE_HH_
2#define EFL_EINA_EINA_TUPLE_HH_ 17#define EFL_EINA_EINA_TUPLE_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_tuple_c.hh b/src/bindings/cxx/eina_cxx/eina_tuple_c.hh
index 64d67c4..6e1d4b9 100644
--- a/src/bindings/cxx/eina_cxx/eina_tuple_c.hh
+++ b/src/bindings/cxx/eina_cxx/eina_tuple_c.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_EINA_EINA_TUPLE_C_HH_ 16#ifndef EFL_EINA_EINA_TUPLE_C_HH_
2#define EFL_EINA_EINA_TUPLE_C_HH_ 17#define EFL_EINA_EINA_TUPLE_C_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_tuple_unwrap.hh b/src/bindings/cxx/eina_cxx/eina_tuple_unwrap.hh
index f2bbb00..5dedb3e 100644
--- a/src/bindings/cxx/eina_cxx/eina_tuple_unwrap.hh
+++ b/src/bindings/cxx/eina_cxx/eina_tuple_unwrap.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_CXX_EINA_TUPLE_UNWRAP_HH 16#ifndef EINA_CXX_EINA_TUPLE_UNWRAP_HH
2#define EINA_CXX_EINA_TUPLE_UNWRAP_HH 17#define EINA_CXX_EINA_TUPLE_UNWRAP_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_type_traits.hh b/src/bindings/cxx/eina_cxx/eina_type_traits.hh
index 3ca979f..67d032a 100644
--- a/src/bindings/cxx/eina_cxx/eina_type_traits.hh
+++ b/src/bindings/cxx/eina_cxx/eina_type_traits.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef _EINA_TYPE_TRAITS_HH 16#ifndef _EINA_TYPE_TRAITS_HH
2#define _EINA_TYPE_TRAITS_HH 17#define _EINA_TYPE_TRAITS_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_value.hh b/src/bindings/cxx/eina_cxx/eina_value.hh
index 5775aeb..1407740 100644
--- a/src/bindings/cxx/eina_cxx/eina_value.hh
+++ b/src/bindings/cxx/eina_cxx/eina_value.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef _EFL_EINA_EINA_VALUE_HH 16#ifndef _EFL_EINA_EINA_VALUE_HH
2#define _EFL_EINA_EINA_VALUE_HH 17#define _EFL_EINA_EINA_VALUE_HH
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_variant.hh b/src/bindings/cxx/eina_cxx/eina_variant.hh
index 4885c80..a337f2e 100644
--- a/src/bindings/cxx/eina_cxx/eina_variant.hh
+++ b/src/bindings/cxx/eina_cxx/eina_variant.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_VARIANT_HH_ 16#ifndef EINA_VARIANT_HH_
2#define EINA_VARIANT_HH_ 17#define EINA_VARIANT_HH_
3 18
diff --git a/src/bindings/cxx/eina_cxx/eina_workarounds.hh b/src/bindings/cxx/eina_cxx/eina_workarounds.hh
index 0ba5869..0be2a3c 100644
--- a/src/bindings/cxx/eina_cxx/eina_workarounds.hh
+++ b/src/bindings/cxx/eina_cxx/eina_workarounds.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EINA_WORKAROUNDS_HH_ 16#ifndef EINA_WORKAROUNDS_HH_
2#define EINA_WORKAROUNDS_HH_ 17#define EINA_WORKAROUNDS_HH_
3 18
diff --git a/src/bindings/cxx/eldbus_cxx/Eldbus.hh b/src/bindings/cxx/eldbus_cxx/Eldbus.hh
index 67cbaf6..68ba64f 100644
--- a/src/bindings/cxx/eldbus_cxx/Eldbus.hh
+++ b/src/bindings/cxx/eldbus_cxx/Eldbus.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_ELDBUS_HH_ 16#ifndef EFL_ELDBUS_HH_
2#define EFL_ELDBUS_HH_ 17#define EFL_ELDBUS_HH_
3 18
diff --git a/src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh b/src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh
index 7d8bb27..ae7478e 100644
--- a/src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh
+++ b/src/bindings/cxx/eldbus_cxx/Eldbus_Model.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_CXX_ELDBUS_MODEL_HH 16#ifndef EFL_CXX_ELDBUS_MODEL_HH
2#define EFL_CXX_ELDBUS_MODEL_HH 17#define EFL_CXX_ELDBUS_MODEL_HH
3 18
diff --git a/src/bindings/cxx/eldbus_cxx/eldbus_basic.hh b/src/bindings/cxx/eldbus_cxx/eldbus_basic.hh
index aa287b4..20e5686 100644
--- a/src/bindings/cxx/eldbus_cxx/eldbus_basic.hh
+++ b/src/bindings/cxx/eldbus_cxx/eldbus_basic.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef ELDBUS_CXX_ELDBUS_BASIC_HH 16#ifndef ELDBUS_CXX_ELDBUS_BASIC_HH
2#define ELDBUS_CXX_ELDBUS_BASIC_HH 17#define ELDBUS_CXX_ELDBUS_BASIC_HH
3 18
diff --git a/src/bindings/cxx/eldbus_cxx/eldbus_error.hh b/src/bindings/cxx/eldbus_cxx/eldbus_error.hh
index dad1d1b..7f21d38 100644
--- a/src/bindings/cxx/eldbus_cxx/eldbus_error.hh
+++ b/src/bindings/cxx/eldbus_cxx/eldbus_error.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef ELDBUS_ERROR_HH 16#ifndef ELDBUS_ERROR_HH
2#define ELDBUS_ERROR_HH 17#define ELDBUS_ERROR_HH
3 18
diff --git a/src/bindings/cxx/eldbus_cxx/eldbus_freedesktop.hh b/src/bindings/cxx/eldbus_cxx/eldbus_freedesktop.hh
index 4af8c58..d7414e5 100644
--- a/src/bindings/cxx/eldbus_cxx/eldbus_freedesktop.hh
+++ b/src/bindings/cxx/eldbus_cxx/eldbus_freedesktop.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_ELDBUS_CXX_ELDBUS_FREEDESKTOP_HH 16#ifndef EFL_ELDBUS_CXX_ELDBUS_FREEDESKTOP_HH
2#define EFL_ELDBUS_CXX_ELDBUS_FREEDESKTOP_HH 17#define EFL_ELDBUS_CXX_ELDBUS_FREEDESKTOP_HH
3 18
diff --git a/src/bindings/cxx/eldbus_cxx/eldbus_integer_sequence.hh b/src/bindings/cxx/eldbus_cxx/eldbus_integer_sequence.hh
index 282936a..f749dbb 100644
--- a/src/bindings/cxx/eldbus_cxx/eldbus_integer_sequence.hh
+++ b/src/bindings/cxx/eldbus_cxx/eldbus_integer_sequence.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef ELDBUS_CXX_ELDBUS_INTEGER_SEQUENCE_HH 16#ifndef ELDBUS_CXX_ELDBUS_INTEGER_SEQUENCE_HH
2#define ELDBUS_CXX_ELDBUS_INTEGER_SEQUENCE_HH 17#define ELDBUS_CXX_ELDBUS_INTEGER_SEQUENCE_HH
3 18
diff --git a/src/bindings/cxx/eldbus_cxx/eldbus_message.hh b/src/bindings/cxx/eldbus_cxx/eldbus_message.hh
index 3f9e15d..d26a470 100644
--- a/src/bindings/cxx/eldbus_cxx/eldbus_message.hh
+++ b/src/bindings/cxx/eldbus_cxx/eldbus_message.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef ELDBUS_CXX_ELDBUS_MESSAGE_HH 16#ifndef ELDBUS_CXX_ELDBUS_MESSAGE_HH
2#define ELDBUS_CXX_ELDBUS_MESSAGE_HH 17#define ELDBUS_CXX_ELDBUS_MESSAGE_HH
3 18
diff --git a/src/bindings/cxx/eldbus_cxx/eldbus_message_arguments.hh b/src/bindings/cxx/eldbus_cxx/eldbus_message_arguments.hh
index 6c57b02..bc19e54 100644
--- a/src/bindings/cxx/eldbus_cxx/eldbus_message_arguments.hh
+++ b/src/bindings/cxx/eldbus_cxx/eldbus_message_arguments.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef ELDBUS_CXX_ELDBUS_MESSAGE_ARGUMENTS_HH 16#ifndef ELDBUS_CXX_ELDBUS_MESSAGE_ARGUMENTS_HH
2#define ELDBUS_CXX_ELDBUS_MESSAGE_ARGUMENTS_HH 17#define ELDBUS_CXX_ELDBUS_MESSAGE_ARGUMENTS_HH
3 18
diff --git a/src/bindings/cxx/eldbus_cxx/eldbus_proxy_call.hh b/src/bindings/cxx/eldbus_cxx/eldbus_proxy_call.hh
index f06f71a..af1dc76 100644
--- a/src/bindings/cxx/eldbus_cxx/eldbus_proxy_call.hh
+++ b/src/bindings/cxx/eldbus_cxx/eldbus_proxy_call.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef ELDBUS_PROXY_CALL_HH 16#ifndef ELDBUS_PROXY_CALL_HH
2#define ELDBUS_PROXY_CALL_HH 17#define ELDBUS_PROXY_CALL_HH
3 18
diff --git a/src/bindings/cxx/eldbus_cxx/eldbus_raw_tuple.hh b/src/bindings/cxx/eldbus_cxx/eldbus_raw_tuple.hh
index ee17cfb..2970e1e 100644
--- a/src/bindings/cxx/eldbus_cxx/eldbus_raw_tuple.hh
+++ b/src/bindings/cxx/eldbus_cxx/eldbus_raw_tuple.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_ELDBUS_CXX_ELDBUS_RAW_TUPLE_HH 16#ifndef EFL_ELDBUS_CXX_ELDBUS_RAW_TUPLE_HH
2#define EFL_ELDBUS_CXX_ELDBUS_RAW_TUPLE_HH 17#define EFL_ELDBUS_CXX_ELDBUS_RAW_TUPLE_HH
3 18
diff --git a/src/bindings/cxx/eldbus_cxx/eldbus_service.hh b/src/bindings/cxx/eldbus_cxx/eldbus_service.hh
index 7d1e005..5852e1e 100644
--- a/src/bindings/cxx/eldbus_cxx/eldbus_service.hh
+++ b/src/bindings/cxx/eldbus_cxx/eldbus_service.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef ELDBUS_CXX_ELDBUS_SERVICE_HH 16#ifndef ELDBUS_CXX_ELDBUS_SERVICE_HH
2#define ELDBUS_CXX_ELDBUS_SERVICE_HH 17#define ELDBUS_CXX_ELDBUS_SERVICE_HH
3 18
diff --git a/src/bindings/cxx/eldbus_cxx/eldbus_signature_traits.hh b/src/bindings/cxx/eldbus_cxx/eldbus_signature_traits.hh
index 8f2f324..2580cab 100644
--- a/src/bindings/cxx/eldbus_cxx/eldbus_signature_traits.hh
+++ b/src/bindings/cxx/eldbus_cxx/eldbus_signature_traits.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef ELDBUS_SIGNATURE_TRAITS_HH_ 16#ifndef ELDBUS_SIGNATURE_TRAITS_HH_
2#define ELDBUS_SIGNATURE_TRAITS_HH_ 17#define ELDBUS_SIGNATURE_TRAITS_HH_
3 18
diff --git a/src/bindings/cxx/eo_cxx/Eo.hh b/src/bindings/cxx/eo_cxx/Eo.hh
index 4a4da4c..570a419 100644
--- a/src/bindings/cxx/eo_cxx/Eo.hh
+++ b/src/bindings/cxx/eo_cxx/Eo.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_CXX_EO_HH 16#ifndef EFL_CXX_EO_HH
2#define EFL_CXX_EO_HH 17#define EFL_CXX_EO_HH
3 18
diff --git a/src/bindings/cxx/eo_cxx/efl_object_impl.hh b/src/bindings/cxx/eo_cxx/efl_object_impl.hh
index 734ed17..c62b0d9 100644
--- a/src/bindings/cxx/eo_cxx/efl_object_impl.hh
+++ b/src/bindings/cxx/eo_cxx/efl_object_impl.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#ifndef EFL_OBJECT_MANUAL_IMPL_HH 16#ifndef EFL_OBJECT_MANUAL_IMPL_HH
2#define EFL_OBJECT_MANUAL_IMPL_HH 17#define EFL_OBJECT_MANUAL_IMPL_HH
3 18
diff --git a/src/bindings/cxx/eo_cxx/eo_concrete.hh b/src/bindings/cxx/eo_cxx/eo_concrete.hh
index 9cd23be..dfc27bb 100644
--- a/src/bindings/cxx/eo_cxx/eo_concrete.hh
+++ b/src/bindings/cxx/eo_cxx/eo_concrete.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1/// 16///
2/// @file eo_concrete.hh 17/// @file eo_concrete.hh
3/// 18///
diff --git a/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh b/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
index 4af1c56..633d377 100644
--- a/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
+++ b/src/bindings/cxx/eo_cxx/eo_cxx_interop.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1 16
2#ifndef EFL_EOLIAN_INTEROP_HH 17#ifndef EFL_EOLIAN_INTEROP_HH
3#define EFL_EOLIAN_INTEROP_HH 18#define EFL_EOLIAN_INTEROP_HH
diff --git a/src/bindings/cxx/eo_cxx/eo_event.hh b/src/bindings/cxx/eo_cxx/eo_event.hh
index 96e4f6b..0053a0f 100644
--- a/src/bindings/cxx/eo_cxx/eo_event.hh
+++ b/src/bindings/cxx/eo_cxx/eo_event.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1 16
2/// 17///
3/// @file eo_event.hh 18/// @file eo_event.hh
diff --git a/src/bindings/cxx/eo_cxx/eo_init.hh b/src/bindings/cxx/eo_cxx/eo_init.hh
index a1cb3c2..653e747 100644
--- a/src/bindings/cxx/eo_cxx/eo_init.hh
+++ b/src/bindings/cxx/eo_cxx/eo_init.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1 16
2/// 17///
3/// @file eo_init.hh 18/// @file eo_init.hh
diff --git a/src/bindings/cxx/eo_cxx/eo_ops.hh b/src/bindings/cxx/eo_cxx/eo_ops.hh
index 4f9c1f7..6d09a4f 100644
--- a/src/bindings/cxx/eo_cxx/eo_ops.hh
+++ b/src/bindings/cxx/eo_cxx/eo_ops.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1 16
2#ifndef EFL_CXX_DETAIL_EO_OPS_HH 17#ifndef EFL_CXX_DETAIL_EO_OPS_HH
3#define EFL_CXX_DETAIL_EO_OPS_HH 18#define EFL_CXX_DETAIL_EO_OPS_HH
diff --git a/src/bindings/cxx/eo_cxx/eo_private.hh b/src/bindings/cxx/eo_cxx/eo_private.hh
index ec4d92c..abd67e5 100644
--- a/src/bindings/cxx/eo_cxx/eo_private.hh
+++ b/src/bindings/cxx/eo_cxx/eo_private.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1 16
2/// 17///
3/// @file eo_private.hh 18/// @file eo_private.hh
diff --git a/src/bindings/cxx/eo_cxx/eo_wref.hh b/src/bindings/cxx/eo_cxx/eo_wref.hh
index aed6d69..c9b96c2 100644
--- a/src/bindings/cxx/eo_cxx/eo_wref.hh
+++ b/src/bindings/cxx/eo_cxx/eo_wref.hh
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1 16
2/// 17///
3/// @file eo_wref.hh 18/// @file eo_wref.hh
diff --git a/src/bindings/meson.build b/src/bindings/meson.build
index e6a59d1..b59e084 100644
--- a/src/bindings/meson.build
+++ b/src/bindings/meson.build
@@ -2,6 +2,11 @@
2bindings = get_option('bindings') 2bindings = get_option('bindings')
3bindings_order = ['luajit', 'cxx', 'mono'] 3bindings_order = ['luajit', 'cxx', 'mono']
4 4
5if (get_option('dotnet') and not bindings.contains('mono'))
6 message('dotnet support requires the C# bindings')
7 bindings += ['mono']
8endif
9
5if (bindings.contains('cxx') == false and bindings.contains('mono')) 10if (bindings.contains('cxx') == false and bindings.contains('mono'))
6 subdirs = ['eina_cxx', 'eolian_cxx'] 11 subdirs = ['eina_cxx', 'eolian_cxx']
7 subdir(join_paths('cxx', 'eina_cxx')) 12 subdir(join_paths('cxx', 'eina_cxx'))
diff --git a/src/bindings/mono/ca.ruleset.in b/src/bindings/mono/ca.ruleset.in
new file mode 100644
index 0000000..0f5be88
--- /dev/null
+++ b/src/bindings/mono/ca.ruleset.in
@@ -0,0 +1,334 @@
1<?xml version="1.0" encoding="utf-8"?>
2<RuleSet Name="CustomRulset" Description="Custom Rulset" ToolsVersion="14.0">
3 <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
4 <!-- Do not declare static members on Generic Types -->
5 @CA1000@
6 <!-- Consider making Raise an event -->
7 @CA1030@
8 <!-- Catch generic exception -->
9 @CA1031@
10 <!-- Add extra exception constructors -->
11 @CA1032@
12 <!-- Do not nest NativeTypes -->
13 @CA1034@
14 <!-- IComparable must implement other comparison operators -->
15 @CA1036@
16 <!-- Avoid empty interface -->
17 @CA1040@
18 <!-- Use Integral Or String Argument For Indexers -->
19 @CA1043@
20 <!-- Consider making property with getter -->
21 @CA1044@
22 <!-- Visible instance fields -->
23 @CA1051@
24 <!-- Static holder can be static -->
25 @CA1052@
26 <!-- Using parameters before checking for null -->
27 @CA1062@
28 <!-- Remove IDisposable as Object already has it -->
29 @CA1063@
30 <!-- Exceptions must be public -->
31 @CA1064@
32 <!-- Do not raise exception in unexpected locations -->
33 @CA1065@
34 <!-- String localization -->
35 @CA1303@
36 <!-- Specify IFormatProvider -->
37 @CA1305@
38 <!-- Specify Stringcomparison -->
39 @CA1307@
40 <!-- PInvoke should not be visible -->
41 @CA1401@
42 <!-- Use nameof -->
43 @CA1507@
44 <!-- Parameter underscore -->
45 @CA1707@
46 <!-- Attribute classes must have the Attribute Suffix -->
47 @CA1710@
48 <!-- Replace generic parameter with T -->
49 @CA1715@
50 <!-- Parameter End conflicts with VB -->
51 @CA1716@
52 <!-- Enum field must be plural -->
53 @CA1717@
54 <!-- Variable has type name -->
55 @CA1720@
56 <!-- Property with same name as getter -->
57 @CA1721@
58 <!-- Type name must not match namespace -->
59 @CA1724@
60 <!-- Unused parameter. Lots of warnings regarding Dispose(disposing) -->
61 @CA1801@
62 <!-- Do not ignore function result -->
63 @CA1806@
64 <!-- Remove static constructors -->
65 @CA1810@
66 <!-- Realized classes are never instantiated -->
67 @CA1812@
68 <!-- Override equal and operator equal on Value Types-->
69 @CA1815@
70 <!-- Dispose must call SuppressFinalizers -->
71 @CA1816@
72 <!-- Member can be static -->
73 @CA1822@
74 <!-- Consider zero length array allocation -->
75 @CA1825@
76 <!-- Count() is used where Any() could be used instead to improve performance -->
77 @CA1827@
78 <!-- Use Count instead of Count() -->
79 @CA1829@
80 <!-- Call dispose before going out of scope -->
81 @CA2000@
82 <!-- Call ConfigureWait-->
83 @CA2007@
84 <!-- PInvoke should specify string marshalling -->
85 @CA2101@
86 <!-- Rethrow loses stack info -->
87 @CA2200@
88 <!-- Declare static fields when they are declared and remove static constructor -->
89 @CA2207@
90 <!-- Instantiate exception params correctly -->
91 @CA2208@
92 <!-- Dot not call overrideable methods in constructors -->
93 @CA2214@
94 <!-- Replace implicit operator -->
95 @CA2225@
96 <!-- Change 'XXXXX' to be read-only by removing the property setter -->
97 @CA2227@
98
99
100
101 </Rules>
102 <Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">
103 <!-- Ignore docs -->
104 @SA0001@
105
106 <!-- 10** Spacing rules -->
107 @SA1000@
108 @SA1001@
109 @SA1002@
110 @SA1003@
111 <!-- Documentation must start with single space -->
112 @SA1004@
113 @SA1005@
114 @SA1006@
115 @SA1007@
116 @SA1008@
117 @SA1009@
118 @SA1010@
119 @SA1011@
120 @SA1012@
121 @SA1013@
122 @SA1014@
123 @SA1015@
124 @SA1016@
125 @SA1017@
126 @SA1018@
127 @SA1019@
128 @SA1020@
129 @SA1021@
130 @SA1022@
131 @SA1023@
132 @SA1024@
133 @SA1025@
134 @SA1026@
135 @SA1027@
136 @SA1028@
137
138 <!-- Readability -->
139 @SA1100@
140 @SA1101@
141 @SA1102@
142 @SA1103@
143 @SA1104@
144 @SA1105@
145 @SA1106@
146 @SA1107@
147 @SA1108@
148 @SA1109@
149 @SA1110@
150 @SA1111@
151 @SA1112@
152 @SA1113@
153 @SA1114@
154 @SA1115@
155 @SA1116@
156 @SA1117@
157 @SA1118@
158 @SA1119@
159 @SA1120@
160 @SA1121@
161 @SA1122@
162 @SA1123@
163 @SA1124@
164 @SA1125@
165 @SA1126@
166 @SA1127@
167 @SA1128@
168 @SA1129@
169 @SA1130@
170 @SA1131@
171 @SA1132@
172 @SA1133@
173 @SA1134@
174 @SA1135@
175 @SA1136@
176 @SA1137@
177 @SA1138@
178 @SA1139@
179
180 <!-- 12** Ordering -->
181 <!-- FIXME Check if this somehow affects docfx output -->
182 @SA1200@
183 @SA1201@
184 @SA1202@
185 @SA1203@
186 @SA1204@
187 @SA1205@
188 @SA1206@
189 @SA1207@
190 @SA1208@
191 @SA1209@
192 @SA1210@
193 @SA1211@
194 @SA1212@
195 @SA1213@
196 @SA1214@
197 @SA1215@
198 @SA1216@
199 @SA1217@
200
201 <!-- 13** Naming Rules -->
202 <!-- Element start with upper case -->
203 @SA1300@
204 @SA1301@
205 <!-- Interface start with I -->
206 @SA1302@
207 <!-- Upper/lower score rules -->
208 @SA1303@
209 @SA1304@
210 @SA1305@
211 @SA1306@
212 @SA1307@
213 <!-- Variable field prefixes -->
214 @SA1308@
215 @SA1309@
216 @SA1310@
217 @SA1311@
218 @SA1312@
219 @SA1313@
220 @SA1314@
221
222 <!-- 14** Maintainability -->
223 <!-- Access modifier -->
224 @SA1400@
225 <!-- Field must be private -->
226 @SA1401@
227 <!-- File Must contain single class or namespace -->
228 @SA1402@
229 @SA1403@
230 <!-- CodeAnalysis suppress does not have justification -->
231 @SA1404@
232 <!-- Debug.Assert/Fail must provide a message -->
233 @SA1405@
234 @SA1406@
235 <!-- Arithmetic/Conditional expression must declare precedence -->
236 @SA1407@
237 @SA1408@
238 <!-- Remove unecessary code -->
239 @SA1409@
240 <!-- Delegate/Attribute parentheses -->
241 @SA1410@
242 @SA1411@
243 <!-- Utf8 file -->
244 @SA1412@
245 <!-- Trailing commas multiline initializer -->
246 @SA1413@
247
248 <!-- 15** Layout Rules -->
249 @SA1500@
250 @SA1501@
251 @SA1502@
252 @SA1503@
253 @SA1504@
254 @SA1505@
255 @SA1506@
256 @SA1507@
257 @SA1508@
258 @SA1509@
259 @SA1510@
260 @SA1511@
261 @SA1512@
262 @SA1513@
263 @SA1514@
264 @SA1515@
265 @SA1516@
266 @SA1517@
267 @SA1518@
268 @SA1519@
269 @SA1520@
270
271 <!-- 16** Documentation rules -->
272 <!-- Things must be documented -->
273 @SA1600@
274 @SA1601@
275 @SA1602@
276 <!-- Valid xml in docs -->
277 @SA1603@
278 @SA1604@
279 @SA1605@
280 @SA1606@
281 @SA1607@
282 @SA1608@
283 @SA1609@
284 @SA1610@
285 @SA1611@
286 @SA1612@
287 @SA1613@
288 @SA1614@
289 @SA1615@
290 @SA1616@
291 @SA1617@
292 @SA1618@
293 @SA1619@
294 @SA1620@
295 @SA1621@
296 @SA1622@
297 @SA1623@
298 @SA1624@
299 @SA1625@
300 @SA1626@
301 @SA1627@
302 @SA1628@
303 @SA1629@
304 @SA1630@
305 @SA1631@
306 @SA1632@
307 <!-- File headers -->
308 @SA1633@
309 @SA1634@
310 @SA1635@
311 @SA1636@
312 @SA1637@
313 @SA1638@
314 @SA1639@
315 @SA1640@
316 @SA1641@
317 <!-- Constructor/Destructor -->
318 @SA1642@
319 @SA1643@
320 <!-- File header -->
321 @SA1644@
322 <!-- Miscellaneous doc -->
323 @SA1645@
324 @SA1646@
325 @SA1647@
326 @SA1648@
327 <!-- Filename must match file type -->
328 @SA1649@
329 <!-- Spelling -->
330 @SA1650@
331 <!-- Placeholder -->
332 @SA1651@
333 </Rules>
334</RuleSet>
diff --git a/src/bindings/mono/efl_mono.dll.config.in b/src/bindings/mono/efl_mono.dll.config.in
index b84883f..25d216b 100644
--- a/src/bindings/mono/efl_mono.dll.config.in
+++ b/src/bindings/mono/efl_mono.dll.config.in
@@ -1,3 +1,20 @@
1<!--
2/*
3 * Copyright 2019 by its authors. See AUTHORS.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17-->
1<configuration> 18<configuration>
2 <dllmap dll="eina" target="@EINA@"/> 19 <dllmap dll="eina" target="@EINA@"/>
3 <dllmap dll="efl" target="@EFL@"/> 20 <dllmap dll="efl" target="@EFL@"/>
diff --git a/src/bindings/mono/efl_mono/AssemblyInfo.cs.in b/src/bindings/mono/efl_mono/AssemblyInfo.cs.in
new file mode 100644
index 0000000..e22d0a4
--- /dev/null
+++ b/src/bindings/mono/efl_mono/AssemblyInfo.cs.in
@@ -0,0 +1,3 @@
1using System.Runtime.CompilerServices;
2
3@MONO_FRIEND_ASSEMBLIES@
diff --git a/src/bindings/mono/efl_mono/GenericModel.cs b/src/bindings/mono/efl_mono/GenericModel.cs
index 1f92b8c..8d7cc81 100644
--- a/src/bindings/mono/efl_mono/GenericModel.cs
+++ b/src/bindings/mono/efl_mono/GenericModel.cs
@@ -18,7 +18,7 @@ namespace Efl {
18/// </summary> 18/// </summary>
19/// <typeparam name="T">The type of the child model. It is the type used when adding/removing/getting items to this 19/// <typeparam name="T">The type of the child model. It is the type used when adding/removing/getting items to this
20/// model.</typeparam> 20/// model.</typeparam>
21public class GenericModel<T> : Efl.Object, Efl.IModel, IDisposable 21public class GenericModel<T> : Efl.Object, Efl.IModel
22{ 22{
23 private Efl.IModel model; 23 private Efl.IModel model;
24 24
@@ -31,7 +31,7 @@ public class GenericModel<T> : Efl.Object, Efl.IModel, IDisposable
31 } 31 }
32 32
33 /// <summary>The list of properties available in the wrapped model.</summary> 33 /// <summary>The list of properties available in the wrapped model.</summary>
34 public Eina.Iterator< System.String> Properties 34 public IEnumerable<System.String> Properties
35 { 35 {
36 get { return GetProperties(); } 36 get { return GetProperties(); }
37 } 37 }
@@ -44,7 +44,7 @@ public class GenericModel<T> : Efl.Object, Efl.IModel, IDisposable
44 44
45 /// <summary>The list of properties available in the wrapped model.</summary> 45 /// <summary>The list of properties available in the wrapped model.</summary>
46 /// <returns>The list of properties in the model.</returns> 46 /// <returns>The list of properties in the model.</returns>
47 public Eina.Iterator<System.String> GetProperties() 47 public IEnumerable<System.String> GetProperties()
48 { 48 {
49 return model.GetProperties(); 49 return model.GetProperties();
50 } 50 }
@@ -119,12 +119,12 @@ public class GenericModel<T> : Efl.Object, Efl.IModel, IDisposable
119 /// <returns>Token to notify the async operation of external request to cancel.</returns> 119 /// <returns>Token to notify the async operation of external request to cancel.</returns>
120 async public System.Threading.Tasks.Task<T> GetAtAsync(uint index) 120 async public System.Threading.Tasks.Task<T> GetAtAsync(uint index)
121 { 121 {
122 using (Eina.Value v = await GetChildrenSliceAsync(index, 1)) 122 using (Eina.Value v = await GetChildrenSliceAsync(index, 1).ConfigureAwait(false))
123 { 123 {
124 if (v.GetValueType().IsContainer()) 124 if (v.GetValueType().IsContainer())
125 { 125 {
126 var child = (Efl.IModel)v[0]; 126 var child = (Efl.IModel)v[0];
127 T obj = (T)Activator.CreateInstance(typeof(T), new System.Object[] {}); 127 T obj = (T)Activator.CreateInstance(typeof(T), Array.Empty<object>());
128 ModelHelper.GetProperties(obj, child); 128 ModelHelper.GetProperties(obj, child);
129 return obj; 129 return obj;
130 } 130 }
diff --git a/src/bindings/mono/efl_mono/ItemFactory.cs b/src/bindings/mono/efl_mono/ItemFactory.cs
index be429fd..a97401c 100644
--- a/src/bindings/mono/efl_mono/ItemFactory.cs
+++ b/src/bindings/mono/efl_mono/ItemFactory.cs
@@ -6,7 +6,8 @@ using System.Collections.Generic;
6using System.Linq; 6using System.Linq;
7using System.ComponentModel; 7using System.ComponentModel;
8 8
9namespace Efl { namespace Ui { 9namespace Efl.Ui
10{
10 11
11/// <summary>Helper factory class. Makes use of C# extension methods for easier property binding. 12/// <summary>Helper factory class. Makes use of C# extension methods for easier property binding.
12/// 13///
@@ -15,7 +16,7 @@ namespace Efl { namespace Ui {
15/// factory.Style().Bind("Name"); // The factory Style property is bound to the Name property for the given model. 16/// factory.Style().Bind("Name"); // The factory Style property is bound to the Name property for the given model.
16/// </code> 17/// </code>
17/// </summary> 18/// </summary>
18public class ItemFactory<T> : Efl.Ui.LayoutFactory, IDisposable 19public class ItemFactory<T> : Efl.Ui.LayoutFactory
19{ 20{
20 /// <summary>Creates a new factory. 21 /// <summary>Creates a new factory.
21 /// </summary> 22 /// </summary>
@@ -26,6 +27,6 @@ public class ItemFactory<T> : Efl.Ui.LayoutFactory, IDisposable
26 } 27 }
27} 28}
28 29
29} } 30}
30 31
31#endif 32#endif
diff --git a/src/bindings/mono/efl_mono/UserModel.cs b/src/bindings/mono/efl_mono/UserModel.cs
index 1116dfc..99350b1 100644
--- a/src/bindings/mono/efl_mono/UserModel.cs
+++ b/src/bindings/mono/efl_mono/UserModel.cs
@@ -27,9 +27,12 @@ internal class ModelHelper
27 static internal void SetProperties<T>(T o, Efl.IModel child) 27 static internal void SetProperties<T>(T o, Efl.IModel child)
28 { 28 {
29 var properties = typeof(T).GetProperties(); 29 var properties = typeof(T).GetProperties();
30 foreach(var prop in properties) 30 foreach (var prop in properties)
31 { 31 {
32 child.SetProperty(prop.Name, ValueFromProperty(o, prop)); 32 using (var tmp = ValueFromProperty(o, prop))
33 {
34 child.SetProperty(prop.Name, tmp);
35 }
33 } 36 }
34 } 37 }
35 38
@@ -37,7 +40,7 @@ internal class ModelHelper
37 static internal void GetProperties<T>(T o, Efl.IModel child) 40 static internal void GetProperties<T>(T o, Efl.IModel child)
38 { 41 {
39 var properties = typeof(T).GetProperties(); 42 var properties = typeof(T).GetProperties();
40 foreach(var prop in properties) 43 foreach (var prop in properties)
41 { 44 {
42 using (var v = child.GetProperty(prop.Name)) 45 using (var v = child.GetProperty(prop.Name))
43 { 46 {
@@ -67,7 +70,7 @@ internal class ModelHelper
67/// </summary> 70/// </summary>
68/// <typeparam name="T">The enclosed C# model class with the properties to be added to the native model.</typeparam> 71/// <typeparam name="T">The enclosed C# model class with the properties to be added to the native model.</typeparam>
69[Efl.Eo.BindingEntity] 72[Efl.Eo.BindingEntity]
70public class UserModel<T> : Efl.MonoModelInternal, IDisposable 73public class UserModel<T> : Efl.MonoModelInternal
71{ 74{
72 /// <summary> 75 /// <summary>
73 /// Creates a new root model. 76 /// Creates a new root model.
@@ -79,18 +82,12 @@ public class UserModel<T> : Efl.MonoModelInternal, IDisposable
79 public UserModel (Efl.Object parent = null) : base(Efl.MonoModelInternal.efl_mono_model_internal_class_get(), parent) 82 public UserModel (Efl.Object parent = null) : base(Efl.MonoModelInternal.efl_mono_model_internal_class_get(), parent)
80 { 83 {
81 var properties = typeof(T).GetProperties(); 84 var properties = typeof(T).GetProperties();
82 foreach(var prop in properties) 85 foreach (var prop in properties)
83 { 86 {
84 AddProperty(prop.Name, Eina.ValueTypeBridge.GetManaged(prop.PropertyType)); 87 AddProperty(prop.Name, Eina.ValueTypeBridge.GetManaged(prop.PropertyType));
85 } 88 }
86 } 89 }
87 90
88 /// <summary>Disposes of this instance.</summary>
89 ~UserModel()
90 {
91 Dispose(false);
92 }
93
94 /// <summary>Adds a new child to the model wrapping the properties of <c>o</c> 91 /// <summary>Adds a new child to the model wrapping the properties of <c>o</c>
95 /// 92 ///
96 /// <para>Reflection is used to instantiate a new <see cref="Efl.IModel" />-based class for this child and 93 /// <para>Reflection is used to instantiate a new <see cref="Efl.IModel" />-based class for this child and
diff --git a/src/bindings/mono/efl_mono/efl_all.cs b/src/bindings/mono/efl_mono/efl_all.cs
index de917a3..c49ec4d 100644
--- a/src/bindings/mono/efl_mono/efl_all.cs
+++ b/src/bindings/mono/efl_mono/efl_all.cs
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#pragma warning disable 1591 16#pragma warning disable 1591
2 17
3using System; 18using System;
@@ -44,7 +59,7 @@ static class UnsafeNativeMethods
44/// </summary> 59/// </summary>
45public static class All 60public static class All
46{ 61{
47 private static bool InitializedUi = false; 62 private static Efl.Csharp.Components initComponents = Efl.Csharp.Components.Basic;
48 63
49 /// <summary> 64 /// <summary>
50 /// If the main loop was initialized. 65 /// If the main loop was initialized.
@@ -64,17 +79,28 @@ public static class All
64 /// <param name="components">The <see cref="Efl.Csharp.Components" /> that initialize the Efl.</param> 79 /// <param name="components">The <see cref="Efl.Csharp.Components" /> that initialize the Efl.</param>
65 public static void Init(Efl.Csharp.Components components = Efl.Csharp.Components.Basic) 80 public static void Init(Efl.Csharp.Components components = Efl.Csharp.Components.Basic)
66 { 81 {
67 Eina.Config.Init(); 82 if (components == Efl.Csharp.Components.None)
68 Efl.Eo.Config.Init(); 83 {
69 ecore_init(); 84 return;
70 ecore_init_ex(0, IntPtr.Zero); 85 }
71 evas_init(); 86
72 eldbus.Config.Init(); 87 initComponents = components;
73 88
74 if (components == Efl.Csharp.Components.Ui) 89 if ((initComponents & Efl.Csharp.Components.Basic)
90 == Efl.Csharp.Components.Basic)
91 {
92 Eina.Config.Init();
93 Efl.Eo.Config.Init();
94 ecore_init();
95 ecore_init_ex(0, IntPtr.Zero);
96 evas_init();
97 eldbus.Config.Init();
98 }
99
100 if ((initComponents & Efl.Csharp.Components.Ui)
101 == Efl.Csharp.Components.Ui)
75 { 102 {
76 Efl.Ui.Config.Init(); 103 Efl.Ui.Config.Init();
77 InitializedUi = true;
78 } 104 }
79 Monitor.Enter(InitLock); 105 Monitor.Enter(InitLock);
80 MainLoopInitialized = true; 106 MainLoopInitialized = true;
@@ -99,22 +125,32 @@ public static class All
99 MainLoopInitialized = false; 125 MainLoopInitialized = false;
100 Monitor.Exit(InitLock); 126 Monitor.Exit(InitLock);
101 127
102 if (InitializedUi) 128 if (initComponents == Efl.Csharp.Components.None)
129 {
130 return;
131 }
132
133 if ((initComponents & Efl.Csharp.Components.Ui)
134 == Efl.Csharp.Components.Ui)
103 { 135 {
104 Eina.Log.Debug("Shutting down Elementary"); 136 Eina.Log.Debug("Shutting down Elementary");
105 Efl.Ui.Config.Shutdown(); 137 Efl.Ui.Config.Shutdown();
106 } 138 }
107 139
108 Eina.Log.Debug("Shutting down Eldbus"); 140 if ((initComponents & Efl.Csharp.Components.Basic)
109 eldbus.Config.Shutdown(); 141 == Efl.Csharp.Components.Basic)
110 Eina.Log.Debug("Shutting down Evas"); 142 {
111 evas_shutdown(); 143 Eina.Log.Debug("Shutting down Eldbus");
112 Eina.Log.Debug("Shutting down Ecore"); 144 eldbus.Config.Shutdown();
113 ecore_shutdown(); 145 Eina.Log.Debug("Shutting down Evas");
114 Eina.Log.Debug("Shutting down Eo"); 146 evas_shutdown();
115 Efl.Eo.Config.Shutdown(); 147 Eina.Log.Debug("Shutting down Ecore");
116 Eina.Log.Debug("Shutting down Eina"); 148 ecore_shutdown();
117 Eina.Config.Shutdown(); 149 Eina.Log.Debug("Shutting down Eo");
150 Efl.Eo.Config.Shutdown();
151 Eina.Log.Debug("Shutting down Eina");
152 Eina.Config.Shutdown();
153 }
118 } 154 }
119} 155}
120 156
diff --git a/src/bindings/mono/efl_mono/efl_csharp_application.cs b/src/bindings/mono/efl_mono/efl_csharp_application.cs
index b4ce5d2..c4abdfe 100644
--- a/src/bindings/mono/efl_mono/efl_csharp_application.cs
+++ b/src/bindings/mono/efl_mono/efl_csharp_application.cs
@@ -1,28 +1,58 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1using System; 16using System;
2using System.Runtime.InteropServices; 17using System.Runtime.InteropServices;
3using System.Threading; 18using System.Threading;
4using static Efl.UnsafeNativeMethods; 19using System.Diagnostics.CodeAnalysis;
20using System.Collections.Generic;
5 21
6namespace Efl 22using static Efl.UnsafeNativeMethods;
7{
8 23
9namespace Csharp 24namespace Efl.Csharp
10{ 25{
11 26
12/// <summary>The components to be initialized. 27/// <summary>The components to be initialized.
13/// <para>Since EFL 1.23.</para> 28/// <para>Since EFL 1.23.</para>
14/// </summary> 29/// </summary>
15public enum Components 30[Flags]
31public enum Components : Int32
16{ 32{
33 // Base flags.
34 /// <summary>
35 /// Initialize nothing.
36 /// <para>Since EFL 1.24.</para>
37 /// </summary>
38 None = 0x0,
17 ///<summary>Basic components: Eina, Eo, Ecore, Evas and DBus. 39 ///<summary>Basic components: Eina, Eo, Ecore, Evas and DBus.
18 /// <para>Since EFL 1.23.</para> 40 /// <para>Since EFL 1.24.</para>
19 /// </summary> 41 /// </summary>
20 Basic, 42 Basic = 0x1,
21 ///<summary>The same components of <see cref="Efl.Csharp.Components.Basic"/> 43 /// <summary>
22 /// and the Elementary widget toolkit. 44 /// Elementary Widget toolkit: Elm.
23 /// <para>Since EFL 1.23.</para> 45 /// <para>it's depend of <see cref="Efl.Csharp.Components.Basic" />.</para>
46 /// <para>Since EFL 1.24.</para>
47 /// </summary>
48 Ui = Basic | 0x2,
49
50 // Combined flags.
51 /// <summary>
52 /// Enable all components, equals to <see cref="Efl.Csharp.Components.Ui" />.
53 /// <para>Since EFL 1.24.</para>
24 /// </summary> 54 /// </summary>
25 Ui, 55 All = int.MaxValue,
26} 56}
27 57
28/// <summary> 58/// <summary>
@@ -48,23 +78,36 @@ public enum Components
48public abstract class Application 78public abstract class Application
49{ 79{
50 //the initializied components 80 //the initializied components
51 private static Components initComponent; 81 private static Components initComponents = Components.All;
82
52 //what follows are 3 private functions to boot up the internals of efl 83 //what follows are 3 private functions to boot up the internals of efl
53 private static void Init(Efl.Csharp.Components component) 84 private static void Init(Efl.Csharp.Components components = Components.All)
54 { 85 {
55 Eina.Config.Init(); 86 if (components == Components.None)
56 Efl.Eo.Config.Init();
57 ecore_init();
58 ecore_init_ex(0, IntPtr.Zero);
59 evas_init();
60 eldbus.Config.Init();
61
62 if (component == Components.Ui)
63 { 87 {
88 return;
89 }
90
91 initComponents = components;
92
93 if ((initComponents & Components.Basic) == Components.Basic)
94 {
95 Eina.Config.Init();
96 Efl.Eo.Config.Init();
97 ecore_init();
98 ecore_init_ex(0, IntPtr.Zero);
99 evas_init();
100 eldbus.Config.Init();
101 }
102
103 if ((initComponents & Components.Ui) == Components.Ui)
104 {
105#if WIN32
64 // TODO Support elm command line arguments 106 // TODO Support elm command line arguments
65#if WIN32 // Not a native define, we define it in our build system 107 // Not a native define, we define it in our build system
66 // Ecore_Win32 uses OleInitialize, which requires single thread apartments 108 // Ecore_Win32 uses OleInitialize, which requires single thread apartments
67 if (System.Threading.Thread.CurrentThread.GetApartmentState() != ApartmentState.STA) 109 if (System.Threading.Thread.CurrentThread.GetApartmentState()
110 != ApartmentState.STA)
68 { 111 {
69 throw new InvalidOperationException("UI Applications require STAThreadAttribute in Main()"); 112 throw new InvalidOperationException("UI Applications require STAThreadAttribute in Main()");
70 } 113 }
@@ -73,8 +116,6 @@ public abstract class Application
73 116
74 Efl.Ui.Win.ExitOnAllWindowsClosed = new Eina.Value(0); 117 Efl.Ui.Win.ExitOnAllWindowsClosed = new Eina.Value(0);
75 } 118 }
76
77 initComponent = component;
78 } 119 }
79 120
80 private static void Shutdown() 121 private static void Shutdown()
@@ -83,16 +124,24 @@ public abstract class Application
83 System.GC.Collect(); 124 System.GC.Collect();
84 System.GC.WaitForPendingFinalizers(); 125 System.GC.WaitForPendingFinalizers();
85 126
86 if (initComponent == Components.Ui) 127 if (initComponents == Components.None)
128 {
129 return;
130 }
131
132 if ((initComponents & Components.Ui) == Components.Ui)
87 { 133 {
88 elm_shutdown(); 134 elm_shutdown();
89 } 135 }
90 136
91 eldbus.Config.Shutdown(); 137 if ((initComponents & Components.Basic) == Components.Basic)
92 evas_shutdown(); 138 {
93 ecore_shutdown(); 139 eldbus.Config.Shutdown();
94 Efl.Eo.Config.Shutdown(); 140 evas_shutdown();
95 Eina.Config.Shutdown(); 141 ecore_shutdown();
142 Efl.Eo.Config.Shutdown();
143 Eina.Config.Shutdown();
144 }
96 } 145 }
97 146
98 /// <summary> 147 /// <summary>
@@ -145,13 +194,14 @@ public abstract class Application
145 /// <para>Since EFL 1.23.</para> 194 /// <para>Since EFL 1.23.</para>
146 /// </summary> 195 /// </summary>
147 /// <param name="components">The <see cref="Efl.Csharp.Components" /> to run the application.</param> 196 /// <param name="components">The <see cref="Efl.Csharp.Components" /> to run the application.</param>
148 public void Launch(Efl.Csharp.Components components = Components.Ui) 197 public void Launch(Efl.Csharp.Components components = Components.All)
149 { 198 {
150 Init(components); 199 Init(components);
151 Efl.App app = Efl.App.AppMain; 200 Efl.App app = Efl.App.AppMain;
152 var command_line = new Eina.Array<Eina.Stringshare>();
153 command_line.Append(Array.ConvertAll(Environment.GetCommandLineArgs(), s => (Eina.Stringshare)s));
154#if EFL_BETA 201#if EFL_BETA
202 var command_line = new List<Eina.Stringshare>();
203 //command_line.Add(List.ConvertAll(Environment.GetCommandLineArgs(), s => (Eina.Stringshare)s));
204 //command_line.AddRange(Environment.GetCommandLineArgs());
155 app.SetCommandArray(command_line); 205 app.SetCommandArray(command_line);
156#endif 206#endif
157 app.ArgumentsEvent += (object sender, LoopArgumentsEventArgs evt) => 207 app.ArgumentsEvent += (object sender, LoopArgumentsEventArgs evt) =>
@@ -159,7 +209,7 @@ public abstract class Application
159 if (evt.arg.Initialization) 209 if (evt.arg.Initialization)
160 { 210 {
161 var evtArgv = evt.arg.Argv; 211 var evtArgv = evt.arg.Argv;
162 int n = evtArgv.Length; 212 int n = evtArgv.Count;
163 var argv = new string[n]; 213 var argv = new string[n];
164 for (int i = 0; i < n; ++i) 214 for (int i = 0; i < n; ++i)
165 { 215 {
@@ -189,5 +239,3 @@ public abstract class Application
189} 239}
190 240
191} 241}
192
193}
diff --git a/src/bindings/mono/efl_mono/efl_libs.cs.in b/src/bindings/mono/efl_mono/efl_libs.cs.in
index 31e0455..fcf5b18 100644
--- a/src/bindings/mono/efl_mono/efl_libs.cs.in
+++ b/src/bindings/mono/efl_mono/efl_libs.cs.in
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#pragma warning disable 1591 16#pragma warning disable 1591
2 17
3namespace efl { 18namespace efl {
diff --git a/src/bindings/mono/efl_mono/efl_libs.csv.in b/src/bindings/mono/efl_mono/efl_libs.csv.in
index 3e356fe..c4b3a72 100644
--- a/src/bindings/mono/efl_mono/efl_libs.csv.in
+++ b/src/bindings/mono/efl_mono/efl_libs.csv.in
@@ -1 +1,16 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1@EFL_MONO_LIBRARY_MAP@ 16@EFL_MONO_LIBRARY_MAP@
diff --git a/src/bindings/mono/efl_mono/meson.build b/src/bindings/mono/efl_mono/meson.build
index cfe53ee..165b6d5 100644
--- a/src/bindings/mono/efl_mono/meson.build
+++ b/src/bindings/mono/efl_mono/meson.build
@@ -34,6 +34,29 @@ efl_src = configure_file(
34 configuration: efl_libs 34 configuration: efl_libs
35) 35)
36 36
37friend_assemblies = ''
38mono_friend_assemblies = get_option('mono-friend-assemblies')
39if get_option('build-tests')
40 if get_option('dotnet')
41 mono_friend_assemblies += 'efl_sharp_test_suite'
42 else
43 mono_friend_assemblies += 'efl_mono_test'
44 mono_friend_assemblies += 'efl-mono-suite'
45 endif
46endif
47
48foreach f : mono_friend_assemblies
49 friend_assemblies += '[assembly: InternalsVisibleTo("@0@")]\n'.format(f)
50endforeach
51friend_assembly_data = configuration_data()
52friend_assembly_data.set('MONO_FRIEND_ASSEMBLIES', friend_assemblies)
53
54mono_files += configure_file(
55 input: 'AssemblyInfo.cs.in',
56 output: 'AssemblyInfo.cs',
57 configuration: friend_assembly_data
58)
59
37mono_eo_files = [ 60mono_eo_files = [
38 'efl_mono_model_internal.eo', 61 'efl_mono_model_internal.eo',
39 'efl_mono_model_internal_child.eo' 62 'efl_mono_model_internal_child.eo'
@@ -60,6 +83,7 @@ endforeach
60efl_mono_lib = library('eflcustomexportsmono', 83efl_mono_lib = library('eflcustomexportsmono',
61 [ 84 [
62 join_paths('..', '..', '..', 'lib', 'efl_mono', 'efl_custom_exports_mono.c'), 85 join_paths('..', '..', '..', 'lib', 'efl_mono', 'efl_custom_exports_mono.c'),
86 join_paths('..', '..', '..', 'lib', 'efl_mono', 'efl_mono_accessors.c'),
63 join_paths('..', '..', '..', 'lib', 'efl_mono', 'efl_mono_model_internal.c'), 87 join_paths('..', '..', '..', 'lib', 'efl_mono', 'efl_mono_model_internal.c'),
64 ], 88 ],
65 pub_eo_file_target, 89 pub_eo_file_target,
diff --git a/src/bindings/mono/efl_sharp.csproj.in b/src/bindings/mono/efl_sharp.csproj.in
new file mode 100644
index 0000000..e03be33
--- /dev/null
+++ b/src/bindings/mono/efl_sharp.csproj.in
@@ -0,0 +1,48 @@
1<Project Sdk="Microsoft.NET.Sdk">
2
3 <PropertyGroup>
4 <OutputType>Library</OutputType>
5 <TargetFramework>netstandard@NETSTANDARD_VERSION@</TargetFramework>
6 </PropertyGroup>
7
8 <PropertyGroup>
9 <PackageId>Efl.Csharp</PackageId>
10 <Version>@EFL_VERSION@</Version>
11 <Authors>EFL Team</Authors>
12 <PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
13 </PropertyGroup>
14
15 <!-- <PropertyGroup Condition="'$(BuildType)'=='Beta'"> -->
16 <!-- <DefineConstants>EFL_BETA</DefineConstants> -->
17 <!-- </PropertyGroup> -->
18 <PropertyGroup>
19 <DefineConstants>@EFL_BETA@</DefineConstants>
20 </PropertyGroup>
21
22 <ItemGroup>
23 <Compile Include="@BINDING_SRC@/efl_mono/*.cs" />
24 <!-- FIXME Windows support -->
25 <Compile Include="@BINDING_SRC@/eo_mono/*.cs" Exclude="@BINDING_SRC@/eo_mono/*Windows.cs" />
26 <Compile Include="@BINDING_SRC@/eina_mono/*.cs" />
27 <Compile Include="@BINDING_SRC@/eolian_mono/*.cs" />
28 <Compile Include="@BINDING_SRC@/eldbus_mono/*.cs" />
29 </ItemGroup>
30
31 <!-- Calling `dotnet build` from a different folder seems to mess up the automatic source file discovery.
32 But we want them to be included only when building the lib itself.
33 -->
34 <ItemGroup Condition="'$(BuildingLib)'=='Yes'">
35 <Compile Include="./efl_mono/*.cs" />
36 <Compile Include="./*.cs" />
37 </ItemGroup>
38
39 <!-- Code style configuration -->
40 <ItemGroup>
41 <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.6" />
42 <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" />
43 </ItemGroup>
44 <PropertyGroup>
45 <CodeAnalysisRuleSet>@CA_RULESET@</CodeAnalysisRuleSet>
46 </PropertyGroup>
47
48</Project>
diff --git a/src/bindings/mono/eina_mono/eina_accessor.cs b/src/bindings/mono/eina_mono/eina_accessor.cs
index c848a2c..77c9817 100644
--- a/src/bindings/mono/eina_mono/eina_accessor.cs
+++ b/src/bindings/mono/eina_mono/eina_accessor.cs
@@ -1,8 +1,24 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1using System; 16using System;
2using System.Collections; 17using System.Collections;
3using System.Collections.Generic; 18using System.Collections.Generic;
4using System.Runtime.InteropServices; 19using System.Runtime.InteropServices;
5using System.ComponentModel; 20using System.ComponentModel;
21using System.Diagnostics.CodeAnalysis;
6 22
7using static Eina.TraitFunctions; 23using static Eina.TraitFunctions;
8 24
@@ -13,16 +29,26 @@ namespace Eina
13 29
14internal class AccessorNativeFunctions 30internal class AccessorNativeFunctions
15{ 31{
32 [DllImport(efl.Libs.Eina)] public static extern IntPtr
33 eina_carray_length_accessor_new(IntPtr array, uint step, uint length);
16 [DllImport(efl.Libs.Eina)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool 34 [DllImport(efl.Libs.Eina)] [return: MarshalAs(UnmanagedType.U1)] public static extern bool
17 eina_accessor_data_get(IntPtr accessor, uint position, IntPtr data); 35 eina_accessor_data_get(IntPtr accessor, uint position, out IntPtr data);
18 [DllImport(efl.Libs.Eina)] public static extern void 36 [DllImport(efl.Libs.Eina)] public static extern void
19 eina_accessor_free(IntPtr accessor); 37 eina_accessor_free(IntPtr accessor);
38 [DllImport(efl.Libs.CustomExports)] public static extern IntPtr
39 eina_mono_owned_carray_length_accessor_new(IntPtr array,
40 uint step,
41 uint length,
42 Eina.Callbacks.EinaFreeCb freeCb,
43 IntPtr handle);
20} 44}
21 45
22/// <summary>Accessors provide an uniform way of accessing Eina containers, 46/// <summary>Accessors provide an uniform way of accessing Eina containers,
23/// similar to C++ STL's and C# IEnumerable. 47/// similar to C++ STL's and C# IEnumerable.
24/// <para>Since EFL 1.23.</para> 48/// <para>Since EFL 1.23.</para>
25/// </summary> 49/// </summary>
50[SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix",
51 Justification="This is a generalized container mapping the native one.")]
26public class Accessor<T> : IEnumerable<T>, IDisposable 52public class Accessor<T> : IEnumerable<T>, IDisposable
27{ 53{
28 /// <summary>Pointer to the native accessor.</summary> 54 /// <summary>Pointer to the native accessor.</summary>
@@ -80,6 +106,7 @@ public class Accessor<T> : IEnumerable<T>, IDisposable
80 public void Dispose() 106 public void Dispose()
81 { 107 {
82 Dispose(true); 108 Dispose(true);
109 GC.SuppressFinalize(this);
83 } 110 }
84 111
85 /// <summary>Disposes of this wrapper, releasing the native accessor if 112 /// <summary>Disposes of this wrapper, releasing the native accessor if
@@ -134,21 +161,12 @@ public class Accessor<T> : IEnumerable<T>, IDisposable
134 throw new ObjectDisposedException(base.GetType().Name); 161 throw new ObjectDisposedException(base.GetType().Name);
135 } 162 }
136 163
137 IntPtr tmp = MemoryNative.Alloc(Marshal.SizeOf(typeof(IntPtr))); 164 IntPtr tmp;
138 uint position = 0; 165 uint position = 0;
139 166 while (eina_accessor_data_get(Handle, position, out tmp))
140 try
141 {
142 while (eina_accessor_data_get(Handle, position, tmp))
143 {
144 IntPtr data = (IntPtr)Marshal.PtrToStructure(tmp, typeof(IntPtr));
145 yield return Convert(data);
146 position += 1;
147 }
148 }
149 finally
150 { 167 {
151 MemoryNative.Free(tmp); 168 yield return Convert(tmp); // No need to free as it is still owned by the container.
169 position += 1;
152 } 170 }
153 } 171 }
154 172
@@ -161,6 +179,8 @@ public class Accessor<T> : IEnumerable<T>, IDisposable
161/// <summary>Accessor for Inlists. 179/// <summary>Accessor for Inlists.
162/// <para>Since EFL 1.23.</para> 180/// <para>Since EFL 1.23.</para>
163/// </summary> 181/// </summary>
182[SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix",
183 Justification="This is a generalized container mapping the native one.")]
164public class AccessorInList<T> : Accessor<T> 184public class AccessorInList<T> : Accessor<T>
165{ 185{
166 /// <summary>Create a new accessor wrapping the given pointer. 186 /// <summary>Create a new accessor wrapping the given pointer.
@@ -186,6 +206,8 @@ public class AccessorInList<T> : Accessor<T>
186/// <summary>Accessor for Inarrays. 206/// <summary>Accessor for Inarrays.
187/// <para>Since EFL 1.23.</para> 207/// <para>Since EFL 1.23.</para>
188/// </summary> 208/// </summary>
209[SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix",
210 Justification="This is a generalized container mapping the native one.")]
189public class AccessorInArray<T> : Accessor<T> 211public class AccessorInArray<T> : Accessor<T>
190{ 212{
191 /// <summary>Create a new accessor wrapping the given pointer. 213 /// <summary>Create a new accessor wrapping the given pointer.
diff --git a/src/bindings/mono/eina_mono/eina_array.cs b/src/bindings/mono/eina_mono/eina_array.cs
index 78388a5..ba3809b 100644
--- a/src/bindings/mono/eina_mono/eina_array.cs
+++ b/src/bindings/mono/eina_mono/eina_array.cs
@@ -1,9 +1,26 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#pragma warning disable 1591 16#pragma warning disable 1591
2 17
3using System; 18using System;
4using System.Runtime.InteropServices; 19using System.Runtime.InteropServices;
5using System.Collections.Generic; 20using System.Collections.Generic;
6using System.ComponentModel; 21using System.ComponentModel;
22using System.Diagnostics.CodeAnalysis;
23using System.Diagnostics.Contracts;
7 24
8using static Eina.TraitFunctions; 25using static Eina.TraitFunctions;
9using static Eina.ArrayNativeFunctions; 26using static Eina.ArrayNativeFunctions;
@@ -12,7 +29,7 @@ namespace Eina
12{ 29{
13 30
14[EditorBrowsable(EditorBrowsableState.Never)] 31[EditorBrowsable(EditorBrowsableState.Never)]
15public static class ArrayNativeFunctions 32internal static class ArrayNativeFunctions
16{ 33{
17 [DllImport(efl.Libs.Eina)] internal static extern IntPtr 34 [DllImport(efl.Libs.Eina)] internal static extern IntPtr
18 eina_array_new(uint step); 35 eina_array_new(uint step);
@@ -20,8 +37,9 @@ public static class ArrayNativeFunctions
20 eina_array_free(IntPtr array); 37 eina_array_free(IntPtr array);
21 [DllImport(efl.Libs.Eina)] internal static extern void 38 [DllImport(efl.Libs.Eina)] internal static extern void
22 eina_array_flush(IntPtr array); 39 eina_array_flush(IntPtr array);
40 public delegate bool KeepCb(IntPtr data, IntPtr gdata);
23 [DllImport(efl.Libs.Eina)] [return: MarshalAs(UnmanagedType.U1)] internal static extern bool 41 [DllImport(efl.Libs.Eina)] [return: MarshalAs(UnmanagedType.U1)] internal static extern bool
24 eina_array_remove(IntPtr array, IntPtr keep, IntPtr gdata); 42 eina_array_remove(IntPtr array, KeepCb keep, IntPtr gdata);
25 [DllImport(efl.Libs.Eina)] [return: MarshalAs(UnmanagedType.U1)] internal static extern bool 43 [DllImport(efl.Libs.Eina)] [return: MarshalAs(UnmanagedType.U1)] internal static extern bool
26 eina_array_push(IntPtr array, IntPtr data); 44 eina_array_push(IntPtr array, IntPtr data);
27 45
@@ -29,6 +47,10 @@ public static class ArrayNativeFunctions
29 eina_array_iterator_new(IntPtr array); 47 eina_array_iterator_new(IntPtr array);
30 [DllImport(efl.Libs.Eina)] internal static extern IntPtr 48 [DllImport(efl.Libs.Eina)] internal static extern IntPtr
31 eina_array_accessor_new(IntPtr array); 49 eina_array_accessor_new(IntPtr array);
50 [DllImport(efl.Libs.Eina)] [return: MarshalAs(UnmanagedType.U1)]
51 internal static extern bool
52 eina_array_find(IntPtr array, IntPtr data,
53 uint out_idx);
32 54
33 [DllImport(efl.Libs.CustomExports)] internal static extern void 55 [DllImport(efl.Libs.CustomExports)] internal static extern void
34 eina_array_clean_custom_export_mono(IntPtr array); 56 eina_array_clean_custom_export_mono(IntPtr array);
@@ -45,35 +67,51 @@ public static class ArrayNativeFunctions
45 67
46 [DllImport(efl.Libs.CustomExports)] [return: MarshalAs(UnmanagedType.U1)] internal static extern bool 68 [DllImport(efl.Libs.CustomExports)] [return: MarshalAs(UnmanagedType.U1)] internal static extern bool
47 eina_array_foreach_custom_export_mono(IntPtr array, IntPtr cb, IntPtr fdata); 69 eina_array_foreach_custom_export_mono(IntPtr array, IntPtr cb, IntPtr fdata);
70 [DllImport(efl.Libs.CustomExports)] internal static extern void
71 eina_array_insert_at_custom_export_mono(IntPtr array, uint index, IntPtr data);
48} 72}
49 73
50/// <summary>A container of contiguous allocated elements. 74/// <summary>A container of contiguous allocated elements.
51/// <para>Since EFL 1.23.</para> 75/// <para>Since EFL 1.23.</para>
52/// </summary> 76/// </summary>
53public class Array<T> : IEnumerable<T>, IDisposable 77[SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix",
78 Justification="This is a generalized container mapping the native one.")]
79public class Array<T> : IList<T>, IEnumerable<T>, IDisposable
54{ 80{
55 public const uint DefaultStep = 32; 81 public const uint DefaultStep = 32;
56 82
57 /// <summary>Pointer to the native buffer.</summary> 83 /// <summary>Pointer to the native buffer.</summary>
58 [EditorBrowsable(EditorBrowsableState.Never)] 84 [EditorBrowsable(EditorBrowsableState.Never)]
59 public IntPtr Handle {get;set;} = IntPtr.Zero; 85 public IntPtr Handle { get; set; } = IntPtr.Zero;
86
60 /// <summary>Whether this wrapper owns the native buffer. 87 /// <summary>Whether this wrapper owns the native buffer.
61 /// <para>Since EFL 1.23.</para> 88 /// <para>Since EFL 1.23.</para>
62 /// </summary> 89 /// </summary>
63 public bool Own {get;set;} 90 internal bool Own { get; set; }
91
64 /// <summary>Who is in charge of releasing the resources wrapped by 92 /// <summary>Who is in charge of releasing the resources wrapped by
65 /// this instance. 93 /// this instance.
66 /// <para>Since EFL 1.23.</para> 94 /// <para>Since EFL 1.23.</para>
67 /// </summary> 95 /// </summary>
68 public bool OwnContent {get;set;} 96 internal bool OwnContent { get; set; }
69 /// <summary> Length of the array. 97
70 /// <para>Since EFL 1.23.</para> 98 /// <summary> Gets the number of elements contained in the <see cref="Array{T}" />.
99 /// <para>Since EFL 1.24.</para>
71 /// </summary> 100 /// </summary>
72 public int Length 101 public int Count
73 { 102 {
74 get { return Count(); } 103 get => (int)eina_array_count_custom_export_mono(Handle);
75 } 104 }
76 105
106 /// <summary>
107 /// Gets a value indicating whether the <see cref="Array" /> is read-only.
108 /// <para>Since EFL 1.24.</para>
109 ///<para>
110 /// It's the negative of <see cref="OwnContent" />.
111 ///</para>
112 /// </summary>
113 public bool IsReadOnly { get => !OwnContent; }
114
77 private void InitNew(uint step) 115 private void InitNew(uint step)
78 { 116 {
79 Handle = eina_array_new(step); 117 Handle = eina_array_new(step);
@@ -86,23 +124,62 @@ public class Array<T> : IEnumerable<T>, IDisposable
86 } 124 }
87 125
88 internal bool InternalPush(IntPtr ele) 126 internal bool InternalPush(IntPtr ele)
127 => eina_array_push_custom_export_mono(Handle, ele);
128
129 internal IntPtr InternalPop()
130 => eina_array_pop_custom_export_mono(Handle);
131
132 internal IntPtr InternalDataGet(int idx)
133 => eina_array_data_get_custom_export_mono(Handle, CheckBounds(idx));
134
135 internal void InternalDataSet(int idx, IntPtr ele)
136 => eina_array_data_set_custom_export_mono(Handle, CheckBounds(idx), ele);
137
138 private uint CheckBounds(int idx)
89 { 139 {
90 return eina_array_push_custom_export_mono(Handle, ele); 140 if (!(0 <= idx && idx < Count))
141 {
142 throw new ArgumentOutOfRangeException(nameof(idx), $"{nameof(idx)} is out of bounds.");
143 }
144
145 return (uint)idx;
91 } 146 }
92 147
93 internal IntPtr InternalPop() 148 private U LoopingThrough<U>(T val, Func<int, U> f1, Func<U> f2)
94 { 149 {
95 return eina_array_pop_custom_export_mono(Handle); 150 for (int i = 0, count = Count; i < count; ++i)
151 {
152 if (NativeToManaged<T>(InternalDataGet(i)).Equals(val))
153 {
154 return f1(i);
155 }
156 }
157
158 return f2();
96 } 159 }
97 160
98 internal IntPtr InternalDataGet(int idx) 161 private void CheckOwnerships()
99 { 162 {
100 return eina_array_data_get_custom_export_mono(Handle, (uint)idx); // TODO: Check bounds ??? 163 if ((Own == false) && (OwnContent == true))
164 {
165 throw new InvalidOperationException(nameof(Own) + "/" + nameof(OwnContent));
166 }
101 } 167 }
102 168
103 internal void InternalDataSet(int idx, IntPtr ele) 169 private void RequireWritable()
170 {
171 if (IsReadOnly)
172 {
173 throw new NotSupportedException("This object's instance is read only.");
174 }
175 }
176
177 private void DeleteData(IntPtr ele)
104 { 178 {
105 eina_array_data_set_custom_export_mono(Handle, (uint)idx, ele); // TODO: Check bounds ??? 179 if (OwnContent)
180 {
181 NativeFree<T>(ele);
182 }
106 } 183 }
107 184
108 /// <summary> 185 /// <summary>
@@ -132,14 +209,13 @@ public class Array<T> : IEnumerable<T>, IDisposable
132 [EditorBrowsable(EditorBrowsableState.Never)] 209 [EditorBrowsable(EditorBrowsableState.Never)]
133 public Array(IntPtr handle, bool own) 210 public Array(IntPtr handle, bool own)
134 { 211 {
135 if (handle == IntPtr.Zero) 212 Handle = (handle != IntPtr.Zero)
136 { 213 ? handle
137 throw new ArgumentNullException("Handle can't be null"); 214 : throw new ArgumentNullException(nameof(handle),
138 } 215 $"{nameof(Handle)} can't be null");
139
140 Handle = handle;
141 Own = own; 216 Own = own;
142 OwnContent = own; 217 OwnContent = own;
218 CheckOwnerships();
143 } 219 }
144 220
145 /// <summary> 221 /// <summary>
@@ -151,14 +227,13 @@ public class Array<T> : IEnumerable<T>, IDisposable
151 [EditorBrowsable(EditorBrowsableState.Never)] 227 [EditorBrowsable(EditorBrowsableState.Never)]
152 public Array(IntPtr handle, bool own, bool ownContent) 228 public Array(IntPtr handle, bool own, bool ownContent)
153 { 229 {
154 if (handle == IntPtr.Zero) 230 Handle = (handle != IntPtr.Zero)
155 { 231 ? handle
156 throw new ArgumentNullException("Handle can't be null"); 232 : throw new ArgumentNullException(nameof(handle),
157 } 233 $"{nameof(Handle)} can't be null");
158
159 Handle = handle;
160 Own = own; 234 Own = own;
161 OwnContent = ownContent; 235 OwnContent = ownContent;
236 CheckOwnerships();
162 } 237 }
163 238
164 /// <summary> 239 /// <summary>
@@ -183,15 +258,17 @@ public class Array<T> : IEnumerable<T>, IDisposable
183 return; 258 return;
184 } 259 }
185 260
186 if (Own && OwnContent) 261 for (int len = (int)eina_array_count_custom_export_mono(h),
262 i = 0; i < len; ++i)
187 { 263 {
188 int len = (int)eina_array_count_custom_export_mono(h); 264 if (!OwnContent)
189 for (int i = 0; i < len; ++i)
190 { 265 {
191 NativeFree<T>(eina_array_data_get_custom_export_mono(h, (uint)i)); 266 break;
192 } 267 }
193 }
194 268
269 DeleteData(eina_array_data_get_custom_export_mono(h, (uint)i));
270 }
271
195 if (Own) 272 if (Own)
196 { 273 {
197 if (disposing) 274 if (disposing)
@@ -222,27 +299,16 @@ public class Array<T> : IEnumerable<T>, IDisposable
222 Dispose(); 299 Dispose();
223 } 300 }
224 301
225 /// <summary>
226 /// Releases the native array.
227 /// <para>Since EFL 1.23.</para>
228 /// </summary>
229 /// <returns>The native array.</returns>
230 public IntPtr Release()
231 {
232 IntPtr h = Handle;
233 Handle = IntPtr.Zero;
234 return h;
235 }
236
237 private void FreeElementsIfOwned() 302 private void FreeElementsIfOwned()
238 { 303 {
239 if (OwnContent) 304 if (IsReadOnly)
240 { 305 {
241 int len = Length; 306 throw new NotSupportedException("This object's instance is read only.");
242 for (int i = 0; i < len; ++i) 307 }
243 { 308
244 NativeFree<T>(InternalDataGet(i)); 309 for (int i = 0, count = Count; i < count; ++i)
245 } 310 {
311 DeleteData(InternalDataGet(i));
246 } 312 }
247 } 313 }
248 314
@@ -265,26 +331,18 @@ public class Array<T> : IEnumerable<T>, IDisposable
265 eina_array_flush(Handle); 331 eina_array_flush(Handle);
266 } 332 }
267 333
268 /// <summary> 334 internal void SetOwnership(bool ownAll)
269 /// Returns the number of elements in an array.
270 /// <para>Since EFL 1.23.</para>
271 /// </summary>
272 /// <returns>The number of elements.</returns>
273 public int Count()
274 {
275 return (int)eina_array_count_custom_export_mono(Handle);
276 }
277
278 public void SetOwnership(bool ownAll)
279 { 335 {
280 Own = ownAll; 336 Own = ownAll;
281 OwnContent = ownAll; 337 OwnContent = ownAll;
338 CheckOwnerships();
282 } 339 }
283 340
284 public void SetOwnership(bool own, bool ownContent) 341 internal void SetOwnership(bool own, bool ownContent)
285 { 342 {
286 Own = own; 343 Own = own;
287 OwnContent = ownContent; 344 OwnContent = ownContent;
345 CheckOwnerships();
288 } 346 }
289 347
290 /// <summary> 348 /// <summary>
@@ -294,6 +352,8 @@ public class Array<T> : IEnumerable<T>, IDisposable
294 /// <param name="val">The value of the element to be inserted.</param> 352 /// <param name="val">The value of the element to be inserted.</param>
295 public bool Push(T val) 353 public bool Push(T val)
296 { 354 {
355 RequireWritable();
356
297 IntPtr ele = ManagedToNativeAlloc(val); 357 IntPtr ele = ManagedToNativeAlloc(val);
298 var r = InternalPush(ele); 358 var r = InternalPush(ele);
299 if (!r) 359 if (!r)
@@ -320,11 +380,13 @@ public class Array<T> : IEnumerable<T>, IDisposable
320 /// <returns>The element at the end position.</returns> 380 /// <returns>The element at the end position.</returns>
321 public T Pop() 381 public T Pop()
322 { 382 {
383 RequireWritable();
384
323 IntPtr ele = InternalPop(); 385 IntPtr ele = InternalPop();
324 var r = NativeToManaged<T>(ele); 386 var r = NativeToManaged<T>(ele);
325 if (OwnContent && ele != IntPtr.Zero) 387 if (ele != IntPtr.Zero)
326 { 388 {
327 NativeFree<T>(ele); 389 DeleteData(ele);
328 } 390 }
329 391
330 return r; 392 return r;
@@ -337,10 +399,7 @@ public class Array<T> : IEnumerable<T>, IDisposable
337 /// <param name="idx">The position of the desired element.</param> 399 /// <param name="idx">The position of the desired element.</param>
338 /// <returns>The element at the specified position</returns> 400 /// <returns>The element at the specified position</returns>
339 public T DataGet(int idx) 401 public T DataGet(int idx)
340 { 402 => NativeToManaged<T>(InternalDataGet(idx));
341 IntPtr ele = InternalDataGet(idx);
342 return NativeToManaged<T>(ele);
343 }
344 403
345 /// <summary> 404 /// <summary>
346 /// Returns the element of the array at the specified position. 405 /// Returns the element of the array at the specified position.
@@ -349,9 +408,8 @@ public class Array<T> : IEnumerable<T>, IDisposable
349 /// <param name="idx">The position of the desired element.</param> 408 /// <param name="idx">The position of the desired element.</param>
350 /// <returns>The element at the specified position</returns> 409 /// <returns>The element at the specified position</returns>
351 public T At(int idx) 410 public T At(int idx)
352 { 411 => DataGet(idx);
353 return DataGet(idx); 412
354 }
355 413
356 /// <summary> 414 /// <summary>
357 /// Replaces the element at the specified position. 415 /// Replaces the element at the specified position.
@@ -359,16 +417,17 @@ public class Array<T> : IEnumerable<T>, IDisposable
359 /// </summary> 417 /// </summary>
360 /// <param name="idx">The position of the desired element.</param> 418 /// <param name="idx">The position of the desired element.</param>
361 /// <param name="val">The value of the element to be inserted.</param> 419 /// <param name="val">The value of the element to be inserted.</param>
362 public void DataSet(int idx, T val) 420 internal void DataSet(int idx, T val)
363 { 421 {
364 IntPtr ele = InternalDataGet(idx); // TODO: check bondaries ?? 422 RequireWritable();
365 if (OwnContent && ele != IntPtr.Zero) 423
424 IntPtr ele = InternalDataGet(idx);
425 if (ele != IntPtr.Zero)
366 { 426 {
367 NativeFree<T>(ele); 427 DeleteData(ele);
368 } 428 }
369 429
370 ele = ManagedToNativeAlloc(val); 430 InternalDataSet(idx, ManagedToNativeAlloc(val));
371 InternalDataSet(idx, ele);
372 } 431 }
373 432
374 /// <summary> 433 /// <summary>
@@ -394,7 +453,7 @@ public class Array<T> : IEnumerable<T>, IDisposable
394 /// <returns>A array</returns> 453 /// <returns>A array</returns>
395 public T[] ToArray() 454 public T[] ToArray()
396 { 455 {
397 int len = Length; 456 int len = Count;
398 var managed = new T[len]; 457 var managed = new T[len];
399 for (int i = 0; i < len; ++i) 458 for (int i = 0; i < len; ++i)
400 { 459 {
@@ -410,6 +469,7 @@ public class Array<T> : IEnumerable<T>, IDisposable
410 /// </summary> 469 /// </summary>
411 public bool Append(T[] values) 470 public bool Append(T[] values)
412 { 471 {
472 Contract.Requires(values != null, nameof(values));
413 foreach (T v in values) 473 foreach (T v in values)
414 { 474 {
415 if (!Push(v)) 475 if (!Push(v))
@@ -426,17 +486,14 @@ public class Array<T> : IEnumerable<T>, IDisposable
426 /// <para>Since EFL 1.23.</para> 486 /// <para>Since EFL 1.23.</para>
427 /// </summary> 487 /// </summary>
428 public Eina.Iterator<T> GetIterator() 488 public Eina.Iterator<T> GetIterator()
429 { 489 => new Eina.Iterator<T>(eina_array_iterator_new(Handle), true);
430 return new Eina.Iterator<T>(eina_array_iterator_new(Handle), true);
431 }
432 490
433 /// <summary> Gets an Enumerator for this Array. 491 /// <summary> Gets an Enumerator for this Array.
434 /// <para>Since EFL 1.23.</para> 492 /// <para>Since EFL 1.23.</para>
435 /// </summary> 493 /// </summary>
436 public IEnumerator<T> GetEnumerator() 494 public IEnumerator<T> GetEnumerator()
437 { 495 {
438 int len = Length; 496 for (int i = 0, count = Count; i < count; ++i)
439 for (int i = 0; i < len; ++i)
440 { 497 {
441 yield return DataGet(i); 498 yield return DataGet(i);
442 } 499 }
@@ -446,16 +503,113 @@ public class Array<T> : IEnumerable<T>, IDisposable
446 /// <para>Since EFL 1.23.</para> 503 /// <para>Since EFL 1.23.</para>
447 /// </summary> 504 /// </summary>
448 System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() 505 System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
449 { 506 => this.GetEnumerator();
450 return this.GetEnumerator();
451 }
452 507
453 /// <summary> Gets an Accessor for this Array. 508 /// <summary> Gets an Accessor for this Array.
454 /// <para>Since EFL 1.23.</para> 509 /// <para>Since EFL 1.23.</para>
455 /// </summary> 510 /// </summary>
456 public Eina.Accessor<T> GetAccessor() 511 public Eina.Accessor<T> GetAccessor()
512 => new Eina.Accessor<T>(eina_array_accessor_new(Handle), Ownership.Managed);
513
514 /// <summary>
515 /// Removes the first occurrence of a specific object.
516 /// <para>Since EFL 1.24.</para>
517 /// </summary>
518 /// <param name="val">The object to remove.</param>
519 public bool Remove(T val)
520 => LoopingThrough(val,
521 (i) =>
522 {
523 RemoveAt(i);
524 return true;
525 }, () => false);
526
527 /// <summary>
528 /// Adds an item.
529 /// <para>Since EFL 1.24.</para>
530 /// </summary>
531 /// <param name="val">The object to add.</param>
532 public void Add(T val) => Push(val);
533
534 /// <summary>
535 /// Removes all items.
536 /// <para>Since EFL 1.24.</para>
537 /// </summary>
538 public void Clear() => Clean();
539
540 /// <summary>
541 /// Determines whether the <see cref="Array{T}" /> contains a specific value.
542 /// <para>Since EFL 1.24.</para>
543 /// </summary>
544 /// <param name="val">The object to locate.</param>
545 public bool Contains(T val)
546 => LoopingThrough(val, (i) => true, () => false);
547
548 /// <summary>
549 /// Copies the elements of the <see cref="Array{T}" /> to an
550 /// <see cref="Array" />, starting at a particular <see cref="Array" /> index.
551 /// <para>Since EFL 1.24.</para>
552 /// </summary>
553 /// <param name="array">The one-dimensional <see cref="Array" /> that is the
554 /// destination of the elements copied from <see cref="Array{T}" />.
555 /// The <see cref="Array" /> must have zero-based indexing.</param>
556 /// <param name="arrayIndex">The zero-based index in array at which copying
557 /// begins.</param>
558 public void CopyTo(T[] array, int arrayIndex)
559 => ToArray().CopyTo(array, arrayIndex);
560
561 /// <summary>
562 /// Determines the index of a specific item.
563 /// <para>Since EFL 1.24.</para>
564 /// </summary>
565 /// <param name="val">The object to locate.</param>
566 public int IndexOf(T val)
567 => LoopingThrough(val, (i) => i, () => -1);
568
569 /// <summary>
570 /// Inserts an item to the <see cref="Array{T}" /> at the specified index.
571 /// <para>Since EFL 1.24.</para>
572 /// </summary>
573 /// <param name="index">The zero-based index at which item should be inserted.</param>
574 /// <param name="val">The object to insert.</param>
575 public void Insert(int index, T val)
576 {
577 RequireWritable();
578
579 if (index < 0)
580 {
581 throw new ArgumentOutOfRangeException(nameof(index), $"{nameof(index)} cannot be negative.");
582 }
583
584 if (Count < index)
585 {
586 throw new ArgumentOutOfRangeException(nameof(index), $"{nameof(index)} is greater than {nameof(Count)} + 1.");
587 }
588
589 if (index == Count)
590 {
591 Push(val);
592 return;
593 }
594
595 eina_array_insert_at_custom_export_mono(Handle, (uint)index,
596 ManagedToNativeAlloc(val));
597 }
598
599 /// <summary>
600 /// Removes the <see cref="Array{T}" /> item at the specified index.
601 /// <para>Since EFL 1.24.</para>
602 /// </summary>
603 /// <param name="index">The zero-based index of the item to remove.</param>
604 public void RemoveAt(int index)
457 { 605 {
458 return new Eina.Accessor<T>(eina_array_accessor_new(Handle), Ownership.Managed); 606 RequireWritable();
607
608 var ele = InternalDataGet(index);
609 DeleteData(ele);
610 eina_array_remove(Handle, (data,gdata)
611 => ele != data,
612 IntPtr.Zero);
459 } 613 }
460} 614}
461 615
diff --git a/src/bindings/mono/eina_mono/eina_binbuf.cs b/src/bindings/mono/eina_mono/eina_binbuf.cs
index 0e9824c..6cc79f9 100644
--- a/src/bindings/mono/eina_mono/eina_binbuf.cs
+++ b/src/bindings/mono/eina_mono/eina_binbuf.cs
@@ -1,8 +1,24 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#pragma warning disable 1591 16#pragma warning disable 1591
2 17
3using System; 18using System;
4using System.Runtime.InteropServices; 19using System.Runtime.InteropServices;
5using System.ComponentModel; 20using System.ComponentModel;
21using System.Diagnostics.Contracts;
6 22
7namespace Eina 23namespace Eina
8{ 24{
@@ -199,6 +215,7 @@ public class Binbuf : IDisposable
199 /// <returns>true on success, false if data could not be appended.</returns> 215 /// <returns>true on success, false if data could not be appended.</returns>
200 public bool Append(byte[] str) 216 public bool Append(byte[] str)
201 { 217 {
218 Contract.Requires(str != null, nameof(str));
202 return 0 != eina_binbuf_append_length(Handle, str, (UIntPtr)(str.Length)); 219 return 0 != eina_binbuf_append_length(Handle, str, (UIntPtr)(str.Length));
203 } 220 }
204 221
@@ -223,6 +240,7 @@ public class Binbuf : IDisposable
223 /// <returns>true on success, false if data could not be appended.</returns> 240 /// <returns>true on success, false if data could not be appended.</returns>
224 public bool Append(Binbuf bb) 241 public bool Append(Binbuf bb)
225 { 242 {
243 Contract.Requires(bb != null, nameof(bb));
226 return 0 != eina_binbuf_append_buffer(Handle, bb.Handle); 244 return 0 != eina_binbuf_append_buffer(Handle, bb.Handle);
227 } 245 }
228 246
@@ -258,6 +276,7 @@ public class Binbuf : IDisposable
258 /// <returns>true on success, false if data could not be appended.</returns> 276 /// <returns>true on success, false if data could not be appended.</returns>
259 public bool Insert(byte[] str, uint pos) 277 public bool Insert(byte[] str, uint pos)
260 { 278 {
279 Contract.Requires(str != null, nameof(str));
261 return 0 != eina_binbuf_insert_length(Handle, str, (UIntPtr)(str.Length), (UIntPtr)pos); 280 return 0 != eina_binbuf_insert_length(Handle, str, (UIntPtr)(str.Length), (UIntPtr)pos);
262 } 281 }
263 282
diff --git a/src/bindings/mono/eina_mono/eina_common.cs b/src/bindings/mono/eina_mono/eina_common.cs
index badd62e..a4f2ff4 100644
--- a/src/bindings/mono/eina_mono/eina_common.cs
+++ b/src/bindings/mono/eina_mono/eina_common.cs
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#pragma warning disable 1591 16#pragma warning disable 1591
2 17
3using System; 18using System;
@@ -16,7 +31,7 @@ internal delegate void EinaFreeCb(IntPtr data);
16 31
17} 32}
18 33
19internal static class NativeCustomExportFunctions 34internal static partial class NativeCustomExportFunctions
20{ 35{
21 [DllImport(efl.Libs.CustomExports)] public static extern void 36 [DllImport(efl.Libs.CustomExports)] public static extern void
22 efl_mono_native_free(IntPtr ptr); 37 efl_mono_native_free(IntPtr ptr);
@@ -190,10 +205,10 @@ public static class StringConversion
190 Marshal.WriteByte(native + strbuf.Length, 0); // write the terminating null 205 Marshal.WriteByte(native + strbuf.Length, 0); // write the terminating null
191 return native; 206 return native;
192 } 207 }
193 catch(Exception e) 208 catch (Exception)
194 { 209 {
195 MemoryNative.Free(native); 210 MemoryNative.Free(native);
196 throw e; 211 throw;
197 } 212 }
198 } 213 }
199 214
diff --git a/src/bindings/mono/eina_mono/eina_config.cs b/src/bindings/mono/eina_mono/eina_config.cs
index e9efea3..d1f536e 100644
--- a/src/bindings/mono/eina_mono/eina_config.cs
+++ b/src/bindings/mono/eina_mono/eina_config.cs
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#pragma warning disable 1591 16#pragma warning disable 1591
2 17
3using System; 18using System;
diff --git a/src/bindings/mono/eina_mono/eina_container_common.cs b/src/bindings/mono/eina_mono/eina_container_common.cs
index 03a6875..a07153e 100644
--- a/src/bindings/mono/eina_mono/eina_container_common.cs
+++ b/src/bindings/mono/eina_mono/eina_container_common.cs
@@ -1,3 +1,18 @@
1/*
2 * Copyright 2019 by its authors. See AUTHORS.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
1#pragma warning disable 1591 16#pragma warning disable 1591
2 17
3using System; 18using System;
@@ -6,6 +21,7 @@ using System.Runtime.InteropServices;
6using System.Collections.Generic; 21using System.Collections.Generic;
7using System.Reflection; 22using System.Reflection;
8using System.ComponentModel; 23using System.ComponentModel;
24using System.Globalization;
9 25
10using Eina.Callbacks; 26using Eina.Callbacks;
11using static Eina.HashNativeFunctions; 27using static Eina.HashNativeFunctions;
@@ -17,7 +33,7 @@ namespace Eina
17{ 33{
18 34
19[EditorBrowsable(EditorBrowsableState.Never)] 35[EditorBrowsable(EditorBrowsableState.Never)]
20public enum ElementType 36internal enum ElementType
21{ 37{
22 NumericType, 38 NumericType,
23 StringType, 39 StringType,
@@ -27,23 +43,115 @@ public enum ElementType
27 43
28[EditorBrowsable(EditorBrowsableState.Never)] 44[EditorBrowsable(EditorBrowsableState.Never)]
29[StructLayout(LayoutKind.Sequential)] 45[StructLayout(LayoutKind.Sequential)]
30public struct InlistMem 46internal struct InlistMem : IEquatable<InlistMem>
31{ 47{
32 public IntPtr next {get;set;} 48 public IntPtr next {get;set;}
33 public IntPtr prev {get;set;} 49 public IntPtr prev {get;set;}
34 public IntPtr last {get;set;} 50 public IntPtr last {get;set;}
51
52 /// <summary>
53 /// Gets a hash for <see cref="InlistMem" />.
54 /// <para>Since EFL 1.24.</para>
55 /// </summary>
56 /// <returns>A hash code.</returns>
57 public override int GetHashCode()
58 => next.GetHashCode() ^ prev.GetHashCode() ^ last.GetHashCode();
59
60 /// <summary>Returns whether this <see cref="InlistMem" />
61 /// is equal to the given <see cref="object" />.
62 /// <para>Since EFL 1.24.</para>
63 /// </summary>
64 /// <param name="other">The <see cref="object" /> to be compared to.</param>
65 /// <returns><c>true</c> if is equal to <c>other</c>.</returns>
66 public override bool Equals(object other)
67 => (!(other is InlistMem)) ? false : Equals((InlistMem)other);
68
69 /// <summary>Returns whether this <see cref="InlistMem" /> is equal
70 /// to the given <see cref="InlistMem" />.
71 /// <para>Since EFL 1.24.</para>
72 /// </summary>
73 /// <param name="other">The <see cref="InlistMem" /> to be compared to.</param>
74 /// <returns><c>true</c> if is equal to <c>other</c>.</returns>
75 public bool Equals(InlistMem other)
76 => (next == other.next) && (prev == other.prev)
77 && (last == other.last);
78
79 /// <summary>Returns whether <c>lhs</c> is equal to <c>rhs</c>.
80 /// <para>Since EFL 1.24.</para>
81 /// </summary>
82 /// <param name="lhs">The left hand side of the operator.</param>
83 /// <param name="rhs">The right hand side of the operator.</param>
84 /// <returns><c>true</c> if <c>lhs</c> is equal
85 /// to <c>rhs</c>.</returns>
86 public static bool operator==(InlistMem lhs, InlistMem rhs)
87 => lhs.Equals(rhs);
88
89 /// <summary>Returns whether <c>lhs</c> is not equal to <c>rhs</c>.
90 /// <para>Since EFL 1.24.</para>
91 /// </summary>
92 /// <param name="lhs">The left hand side of the operator.</param>
93 /// <param name="rhs">The right hand side of the operator.</param>
94 /// <returns><c>true</c> if <c>lhs</c> is not equal
95 /// to <c>rhs</c>.</returns>
96 public static bool operator!=(InlistMem lhs, InlistMem rhs) => !(lhs == rhs);
35} 97}
36 98
37[EditorBrowsable(EditorBrowsableState.Never)] 99[EditorBrowsable(EditorBrowsableState.Never)]
38[StructLayout(LayoutKind.Sequential)] 100[StructLayout(LayoutKind.Sequential)]
39public struct InlistNode<T> 101internal struct InlistNode<T> : IEquatable<InlistNode<T>>
40{ 102{
41 public InlistMem __in_list {get;set;} 103 public InlistMem __in_list {get;set;}
42 public T Val {get;set;} 104 public T Val {get;set;}
105
106 /// <summary>
107 /// Gets a hash for <see cref="InlistNode{T}" />.
108 /// <para>Since EFL 1.24.</para>
109 /// </summary>
110 /// <returns>A hash code.</returns>
111 publ