private void ProcessRegistrationQueue() { while (RegistrationQueue.Count > 0) { BroadcastRegistrationSignature signature = RegistrationQueue.Dequeue(); RegisterToBroadcastImmediate(signature.broadcastType, signature.callbackMethodName, signature.listener); } }
private void ProcessDeregistrationQueue() { while (DeregistrationQueue.Count > 0) { BroadcastRegistrationSignature signature = DeregistrationQueue.Dequeue(); if (broadcastLookup.ContainsKey(signature.broadcastType) && broadcastLookup[signature.broadcastType].ContainsKey(signature.listener)) { broadcastLookup[signature.broadcastType][signature.listener].Remove(signature.callbackMethodName); //Debug.Log("Listener " + signature.listener.name + " removed callback " + signature.callbackMethodName + " from broadcast " + signature.broadcastType); } } }
public BroadcastUndeliveredSignature(MonoBehaviour listener, string broadcastType, string callbackMethodName, object[] list) { signature = new BroadcastRegistrationSignature(broadcastType, callbackMethodName, listener); this.list = list; }