301 lines
6.9 KiB
C#
301 lines
6.9 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
|
|
public static class vp_GlobalEvent
|
|
{
|
|
private static Hashtable m_Callbacks = vp_GlobalEventInternal.Callbacks;
|
|
|
|
public static void Register(string name, vp_GlobalCallback callback)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (callback == null)
|
|
{
|
|
throw new ArgumentNullException("callback");
|
|
}
|
|
List<vp_GlobalCallback> list = (List<vp_GlobalCallback>)m_Callbacks[name];
|
|
if (list == null)
|
|
{
|
|
list = new List<vp_GlobalCallback>();
|
|
m_Callbacks.Add(name, list);
|
|
}
|
|
list.Add(callback);
|
|
}
|
|
|
|
public static void Unregister(string name, vp_GlobalCallback callback)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (callback == null)
|
|
{
|
|
throw new ArgumentNullException("callback");
|
|
}
|
|
List<vp_GlobalCallback> list = (List<vp_GlobalCallback>)m_Callbacks[name];
|
|
if (list != null)
|
|
{
|
|
list.Remove(callback);
|
|
return;
|
|
}
|
|
throw vp_GlobalEventInternal.ShowUnregisterException(name);
|
|
}
|
|
|
|
public static void Send(string name)
|
|
{
|
|
Send(name, vp_GlobalEventMode.DONT_REQUIRE_LISTENER);
|
|
}
|
|
|
|
public static void Send(string name, vp_GlobalEventMode mode)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
List<vp_GlobalCallback> list = (List<vp_GlobalCallback>)m_Callbacks[name];
|
|
if (list != null)
|
|
{
|
|
foreach (vp_GlobalCallback item in list)
|
|
{
|
|
item();
|
|
}
|
|
return;
|
|
}
|
|
if (mode == vp_GlobalEventMode.REQUIRE_LISTENER)
|
|
{
|
|
throw vp_GlobalEventInternal.ShowSendException(name);
|
|
}
|
|
}
|
|
}
|
|
public static class vp_GlobalEvent<T>
|
|
{
|
|
private static Hashtable m_Callbacks = vp_GlobalEventInternal.Callbacks;
|
|
|
|
public static void Register(string name, vp_GlobalCallback<T> callback)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (callback == null)
|
|
{
|
|
throw new ArgumentNullException("callback");
|
|
}
|
|
List<vp_GlobalCallback<T>> list = (List<vp_GlobalCallback<T>>)m_Callbacks[name];
|
|
if (list == null)
|
|
{
|
|
list = new List<vp_GlobalCallback<T>>();
|
|
m_Callbacks.Add(name, list);
|
|
}
|
|
list.Add(callback);
|
|
}
|
|
|
|
public static void Unregister(string name, vp_GlobalCallback<T> callback)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (callback == null)
|
|
{
|
|
throw new ArgumentNullException("callback");
|
|
}
|
|
List<vp_GlobalCallback<T>> list = (List<vp_GlobalCallback<T>>)m_Callbacks[name];
|
|
if (list != null)
|
|
{
|
|
list.Remove(callback);
|
|
return;
|
|
}
|
|
throw vp_GlobalEventInternal.ShowUnregisterException(name);
|
|
}
|
|
|
|
public static void Send(string name, T arg1)
|
|
{
|
|
Send(name, arg1, vp_GlobalEventMode.DONT_REQUIRE_LISTENER);
|
|
}
|
|
|
|
public static void Send(string name, T arg1, vp_GlobalEventMode mode)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (arg1 == null)
|
|
{
|
|
throw new ArgumentNullException("arg1");
|
|
}
|
|
List<vp_GlobalCallback<T>> list = (List<vp_GlobalCallback<T>>)m_Callbacks[name];
|
|
if (list != null)
|
|
{
|
|
foreach (vp_GlobalCallback<T> item in list)
|
|
{
|
|
item(arg1);
|
|
}
|
|
return;
|
|
}
|
|
if (mode == vp_GlobalEventMode.REQUIRE_LISTENER)
|
|
{
|
|
throw vp_GlobalEventInternal.ShowSendException(name);
|
|
}
|
|
}
|
|
}
|
|
public static class vp_GlobalEvent<T, U>
|
|
{
|
|
private static Hashtable m_Callbacks = vp_GlobalEventInternal.Callbacks;
|
|
|
|
public static void Register(string name, vp_GlobalCallback<T, U> callback)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (callback == null)
|
|
{
|
|
throw new ArgumentNullException("callback");
|
|
}
|
|
List<vp_GlobalCallback<T, U>> list = (List<vp_GlobalCallback<T, U>>)m_Callbacks[name];
|
|
if (list == null)
|
|
{
|
|
list = new List<vp_GlobalCallback<T, U>>();
|
|
m_Callbacks.Add(name, list);
|
|
}
|
|
list.Add(callback);
|
|
}
|
|
|
|
public static void Unregister(string name, vp_GlobalCallback<T, U> callback)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (callback == null)
|
|
{
|
|
throw new ArgumentNullException("callback");
|
|
}
|
|
List<vp_GlobalCallback<T, U>> list = (List<vp_GlobalCallback<T, U>>)m_Callbacks[name];
|
|
if (list != null)
|
|
{
|
|
list.Remove(callback);
|
|
return;
|
|
}
|
|
throw vp_GlobalEventInternal.ShowUnregisterException(name);
|
|
}
|
|
|
|
public static void Send(string name, T arg1, U arg2)
|
|
{
|
|
Send(name, arg1, arg2, vp_GlobalEventMode.DONT_REQUIRE_LISTENER);
|
|
}
|
|
|
|
public static void Send(string name, T arg1, U arg2, vp_GlobalEventMode mode)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (arg1 == null)
|
|
{
|
|
throw new ArgumentNullException("arg1");
|
|
}
|
|
if (arg2 == null)
|
|
{
|
|
throw new ArgumentNullException("arg2");
|
|
}
|
|
List<vp_GlobalCallback<T, U>> list = (List<vp_GlobalCallback<T, U>>)m_Callbacks[name];
|
|
if (list != null)
|
|
{
|
|
foreach (vp_GlobalCallback<T, U> item in list)
|
|
{
|
|
item(arg1, arg2);
|
|
}
|
|
return;
|
|
}
|
|
if (mode == vp_GlobalEventMode.REQUIRE_LISTENER)
|
|
{
|
|
throw vp_GlobalEventInternal.ShowSendException(name);
|
|
}
|
|
}
|
|
}
|
|
public static class vp_GlobalEvent<T, U, V>
|
|
{
|
|
private static Hashtable m_Callbacks = vp_GlobalEventInternal.Callbacks;
|
|
|
|
public static void Register(string name, vp_GlobalCallback<T, U, V> callback)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (callback == null)
|
|
{
|
|
throw new ArgumentNullException("callback");
|
|
}
|
|
List<vp_GlobalCallback<T, U, V>> list = (List<vp_GlobalCallback<T, U, V>>)m_Callbacks[name];
|
|
if (list == null)
|
|
{
|
|
list = new List<vp_GlobalCallback<T, U, V>>();
|
|
m_Callbacks.Add(name, list);
|
|
}
|
|
list.Add(callback);
|
|
}
|
|
|
|
public static void Unregister(string name, vp_GlobalCallback<T, U, V> callback)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (callback == null)
|
|
{
|
|
throw new ArgumentNullException("callback");
|
|
}
|
|
List<vp_GlobalCallback<T, U, V>> list = (List<vp_GlobalCallback<T, U, V>>)m_Callbacks[name];
|
|
if (list != null)
|
|
{
|
|
list.Remove(callback);
|
|
return;
|
|
}
|
|
throw vp_GlobalEventInternal.ShowUnregisterException(name);
|
|
}
|
|
|
|
public static void Send(string name, T arg1, U arg2, V arg3)
|
|
{
|
|
Send(name, arg1, arg2, arg3, vp_GlobalEventMode.DONT_REQUIRE_LISTENER);
|
|
}
|
|
|
|
public static void Send(string name, T arg1, U arg2, V arg3, vp_GlobalEventMode mode)
|
|
{
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
throw new ArgumentNullException("name");
|
|
}
|
|
if (arg1 == null)
|
|
{
|
|
throw new ArgumentNullException("arg1");
|
|
}
|
|
if (arg2 == null)
|
|
{
|
|
throw new ArgumentNullException("arg2");
|
|
}
|
|
if (arg3 == null)
|
|
{
|
|
throw new ArgumentNullException("arg3");
|
|
}
|
|
List<vp_GlobalCallback<T, U, V>> list = (List<vp_GlobalCallback<T, U, V>>)m_Callbacks[name];
|
|
if (list != null)
|
|
{
|
|
foreach (vp_GlobalCallback<T, U, V> item in list)
|
|
{
|
|
item(arg1, arg2, arg3);
|
|
}
|
|
return;
|
|
}
|
|
if (mode == vp_GlobalEventMode.REQUIRE_LISTENER)
|
|
{
|
|
throw vp_GlobalEventInternal.ShowSendException(name);
|
|
}
|
|
}
|
|
}
|