Exemplo n.º 1
0
 public CallbackObject(byte messageId, MessageCallback callback, CallbackPriority priority)
 {
     MessageId = messageId;
     Callback  = callback;
     Priority  = priority;
     assembly  = callback.Method.Module.Assembly;
 }
Exemplo n.º 2
0
        public async Task WaitUntilAsync(Predicate <TEventArgs> condition, CallbackPriority priority = CallbackPriority.Normal)
        {
            TaskCompletionSource <object> tcs = new TaskCompletionSource <object> (null);
            var callback = new Callback(condition, tcs);

            subscribe(callback, priority);
            await tcs.Task;

            unsubscribe(callback, priority);
        }
Exemplo n.º 3
0
        public async Task WaitUntilAsync(Predicate <TEventArgs> condition, CallbackPriority priority = CallbackPriority.Normal)
        {
            var ev = getEvent();

            if (ev == null)
            {
                return;
            }
            if (!await approachHotspot(ev))
            {
                return;
            }
            await ev.WaitUntilAsync(condition, priority);
        }
        public void Remove(Callback callback, CallbackPriority priority)
        {
            switch (priority)
            {
            case CallbackPriority.High:
                _high.Remove(callback);
                break;

            case CallbackPriority.Normal:
                _normal.Remove(callback);
                break;

            case CallbackPriority.Low:
                _low.Remove(callback);
                break;

            default:
                throw new NotSupportedException($"Unsupported callback priority: ${priority}");
            }
        }
Exemplo n.º 5
0
        public void Add(byte id, MessageCallback callback, CallbackPriority priority)
        {
            lock (syncRoot) {
                if (list[id] == null)
                {
                    list[id] = new CallbacksCollection();
                }

                CallbackObject obj = new CallbackObject(id, callback, priority);

                if (list[id].Contains(obj))
                {
                    throw new ArgumentException("Callback is already registered for this message.");
                }

                RuntimeCore.AddAssemblyObject(obj, this);
                list[id].Add(obj);

                list[id].SortByPriority();

                Debug.WriteLine(callbacksName + " callback added (0x" + id.ToString("X2") + ", " + priority.ToString() + ")", "Phoenix");
            }
        }
Exemplo n.º 6
0
 public void Unsubscribe(ClaimableCallback callback, CallbackPriority priority = CallbackPriority.Normal) => unsubscribe(new Callback(callback), priority);
Exemplo n.º 7
0
 public static void RegisterServerMessageCallback(byte id, MessageCallback callback, CallbackPriority priority)
 {
     serverMsgCallbacks.Add(id, callback, priority);
 }
Exemplo n.º 8
0
 public static void RegisterClientMessageCallback(byte id, MessageCallback callback, CallbackPriority priority)
 {
     clientMsgCallbacks.Add(id, callback, priority);
 }
Exemplo n.º 9
0
 public void UnsubscribeToAsync(Func <Task> callback, CallbackPriority priority = CallbackPriority.Normal) => unsubscribe(new Callback(callback), priority);
Exemplo n.º 10
0
 public void Unsubscribe(ClaimableCallbackWithArgs <TEventArgs> callback, CallbackPriority priority = CallbackPriority.Normal) => unsubscribe(new Callback(callback), priority);
Exemplo n.º 11
0
 public void Subscribe(Action <TEventArgs> callback, CallbackPriority priority = CallbackPriority.Normal) => subscribe(new Callback(callback), priority);
Exemplo n.º 12
0
 public void Unsubscribe(Action callback, CallbackPriority priority = CallbackPriority.Normal)
 {
     _ev.Unsubscribe(callback, priority);
 }
Exemplo n.º 13
0
 public void Subscribe(Action <TEventArgs> callback, CallbackPriority priority = CallbackPriority.Normal)
 {
     _ev.Subscribe(callback, priority);
 }
Exemplo n.º 14
0
 public static void RegisterClientMessageCallback(byte id, MessageCallback callback, CallbackPriority priority)
 {
     clientMsgCallbacks.Add(id, callback, priority);
 }
Exemplo n.º 15
0
 public static void RegisterServerMessageCallback(byte id, MessageCallback callback, CallbackPriority priority)
 {
     serverMsgCallbacks.Add(id, callback, priority);
 }
 public MessageHandlerAttributeBase(byte id)
 {
     this.id = id;
     priority = CallbackPriority.Normal;
 }
Exemplo n.º 17
0
    public void AddFixedUpadateCallback(PHSceneBehaviourCallback phSceneBehaviourCallback, CallbackPriority callbackPriority, int subPriority = 0)
    {
        var newItem = new PHSceneBehaviourCallbackItem(subPriority, phSceneBehaviourCallback);

        fixedUpdateCallbacks[callbackPriority].Add(newItem);
        fixedUpdateCallbacks[callbackPriority].Sort((a, b) => a.subPriority - b.subPriority);
    }
Exemplo n.º 18
0
 private void subscribe(Callback callback, CallbackPriority priority)
 {
     _invocationList.Add(callback, priority);
 }
Exemplo n.º 19
0
 private void unsubscribe(Callback callback, CallbackPriority priority)
 {
     _invocationList.Remove(callback, priority);
 }
Exemplo n.º 20
0
 public void SubscribeToAsync(Func <TEventArgs, Task> callback, CallbackPriority priority = CallbackPriority.Normal)
 {
     _ev.SubscribeToAsync(callback, priority);
 }
Exemplo n.º 21
0
 public void Unsubscribe(Action callback, CallbackPriority priority = CallbackPriority.Normal) => unsubscribe(new Callback(callback), priority);
Exemplo n.º 22
0
 public void UnsubscribeToAsync(Func <Task> callback, CallbackPriority priority = CallbackPriority.Normal)
 {
     _ev.UnsubscribeToAsync(callback, priority);
 }
Exemplo n.º 23
0
 public void SubscribeToAsync(Func <TEventArgs, Task> callback, CallbackPriority priority = CallbackPriority.Normal) => subscribe(new Callback(callback), priority);
Exemplo n.º 24
0
 public MessageHandlerAttributeBase(byte id)
 {
     this.id  = id;
     priority = CallbackPriority.Normal;
 }
Exemplo n.º 25
0
 public void WaitUntil(Predicate <TEventArgs> condition, CallbackPriority priority = CallbackPriority.Normal)
 {
     Task.Run(async() => await WaitUntilAsync(condition, priority)).Wait();
 }
Exemplo n.º 26
0
    public void DeleteFixedUpadateCallback(PHSceneBehaviourCallback phSceneBehaviourCallback, CallbackPriority callbackPriority, int subPriority = 0)
    {
        var callBackItems = fixedUpdateCallbacks[callbackPriority];
        PHSceneBehaviourCallbackItem deleteCallBackItem = null;

        foreach (var item in callBackItems)
        {
            if (item.subPriority == subPriority && item.callback == phSceneBehaviourCallback)
            {
                deleteCallBackItem = item;
                break;
            }
        }
        callBackItems.Remove(deleteCallBackItem);
    }