public static void RegisterHandler(short msgId, ByteBufferCallback callback, bool asServer) { if (callback == null) { return; } if (!RegisterMessageId(msgId, asServer)) { return; } /// make a new list if this is the first item if (callbacks[msgId].bufferCallbacks == null) { callbacks[msgId].bufferCallbacks = new List <ByteBufferCallback>(); } /// don't register the same callback twice if (callbacks[msgId].bufferCallbacks.Contains(callback)) { return; } callbacks[msgId].bufferCallbacks.Add(callback); }
//public static void RegisterHandler(byte msgid, BitstreamCallback callback, bool asServer) //{ // if (!callbacks.ContainsKey(msgid)) // callbacks.Add(msgid, new CallbackLists()); // if (callbacks[msgid].bitstreamCallbacks == null) // callbacks[msgid].bitstreamCallbacks = new List<BitstreamCallback>(); // var cbs = callbacks[msgid].bitstreamCallbacks; // if (!cbs.Contains(callback)) // cbs.Add(callback); //} public static void UnregisterHandler(byte msgid, ByteBufferCallback callback, bool asServer) { if (callbacks.ContainsKey(msgid)) { var cbs = callbacks[msgid]; cbs.bufferCallbacks.Remove(callback); if (cbs.bufferCallbacks.Count == 0) { callbacks.Remove(msgid); } } }
public static void UnregisterHandler(short msgId, ByteBufferCallback callback, bool asServer) { if (!callbacks.ContainsKey(msgId) || callbacks[msgId].bufferCallbacks == null) { return; } var cbs = callbacks[msgId]; // Remove callback method from list for this msgid cbs.bufferCallbacks.Remove(callback); /// Remove the dictionary entry entirely if we no longer have any callbacks if (cbs.bufferCallbacks.Count == 0 /* && (cbs.bitstreamCallbacks == null || cbs.bitstreamCallbacks.Count == 0)*/) { UnregisterMessageId(msgId, asServer); callbacks.Remove(msgId); } }
public static void RegisterHandler(byte msgid, ByteBufferCallback callback, bool asServer) { if (!callbacks.ContainsKey(msgid)) { callbacks.Add(msgid, new CallbackLists()); } if (callbacks[msgid].bufferCallbacks == null) { callbacks[msgid].bufferCallbacks = new List <ByteBufferCallback>(); } var cbs = callbacks[msgid].bufferCallbacks; if (!cbs.Contains(callback)) { cbs.Add(callback); } }
public static void UnregisterCallback(ByteBufferCallback callback) { UnregisterCallback(DEF_MSG_ID, callback); }