[NUI] Move WeakEvent to public and remove unused WeakEventHandler class
authorJiyun Yang <ji.yang@samsung.com>
Mon, 18 Mar 2024 11:13:14 +0000 (20:13 +0900)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Mon, 18 Mar 2024 11:46:10 +0000 (20:46 +0900)
Signed-off-by: Jiyun Yang <ji.yang@samsung.com>
src/Tizen.NUI/src/internal/Common/WeakEventHandler.cs [deleted file]
src/Tizen.NUI/src/public/Common/WeakEvent.cs [moved from src/Tizen.NUI/src/internal/Common/WeakEvent.cs with 82% similarity]

diff --git a/src/Tizen.NUI/src/internal/Common/WeakEventHandler.cs b/src/Tizen.NUI/src/internal/Common/WeakEventHandler.cs
deleted file mode 100755 (executable)
index 016b8fd..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-using System;
-using System.Reflection;
-
-namespace Tizen.NUI
-{
-    internal sealed class WeakEventHandler<TEventArgs> where TEventArgs : EventArgs
-    {
-        private readonly WeakReference targetReference;
-        private readonly MethodInfo method;
-
-        public WeakEventHandler(EventHandler<TEventArgs> callback)
-        {
-            method = callback.GetMethodInfo();
-            targetReference = new WeakReference(callback.Target, true);
-        }
-
-        public void Handler(object sender, TEventArgs e)
-        {
-            var target = targetReference.Target;
-            if (target != null)
-            {
-                var callback = (Action<object, TEventArgs>)method.CreateDelegate(typeof(Action<object, TEventArgs>), target);
-                if (callback != null)
-                {
-                    callback(sender, e);
-                }
-            }
-        }
-    }
-}
-
similarity index 82%
rename from src/Tizen.NUI/src/internal/Common/WeakEvent.cs
rename to src/Tizen.NUI/src/public/Common/WeakEvent.cs
index 1b12cef..dc84a0c 100755 (executable)
  */
 
 using System;
+using System.ComponentModel;
 using System.Collections.Generic;
 using System.Reflection;
 
 namespace Tizen.NUI
 {
-    internal class WeakEvent<T> where T : Delegate
+    /// <summary>
+    /// The WeakEvent without holding strong reference of event handler.
+    /// </summary>
+    [EditorBrowsable(EditorBrowsableState.Never)]
+    public class WeakEvent<T> where T : Delegate
     {
         private const int addThreshold = 1000; // Experimetal constant
         private const int listLengthThreshold = 1000; // Experimetal constant
         private int cleanUpAddCount = 0;
         private List<WeakHandler<T>> handlers = new List<WeakHandler<T>>();
 
+        /// <summary>
+        /// The count of currently added event handlers.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
         protected int Count => handlers.Count;
 
+        /// <summary>
+        /// Add an event handler.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
         public virtual void Add(T handler)
         {
             handlers.Add(new WeakHandler<T>(handler));
@@ -38,6 +51,10 @@ namespace Tizen.NUI
             CleanUpDeadHandlersIfNeeds();
         }
 
+        /// <summary>
+        /// Remove last added event handler.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
         public virtual void Remove(T handler)
         {
             int lastIndex = handlers.FindLastIndex(item => item.Equals(handler));
@@ -49,6 +66,10 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Invoke event handlers.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
         public void Invoke(object sender, EventArgs args)
         {
             // Iterate copied one to prevent addition/removal item in the handler call.
@@ -62,11 +83,17 @@ namespace Tizen.NUI
             CleanUpDeadHandlers();
         }
 
+        /// <summary>
+        /// Invoked when the event handler count is increased.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
         protected virtual void OnCountIncreased()
         {
         }
 
-
+        /// <summary>
+        /// Invoked when the event handler count is decreased.
+        /// </summary>
         protected virtual void OnCountDicreased()
         {
         }