/// <summary> /// Send a DIMSE message /// </summary> /// <param name="rq"></param> /// <param name="l"></param> public void Invoke(Dimse rq, DimseListenerI l) { int msgID = rq.Command.MessageID; int maxOps = assoc.MaxOpsInvoked; if (maxOps == 0) { rspDispatcher.Add(msgID, l); } else lock(rspDispatcher) { while (rspDispatcher.Count >= maxOps) { System.Threading.Monitor.Wait(rspDispatcher); } rspDispatcher.Add(msgID, l); } assoc.Write(rq); }
/// <summary> /// Add DIMSE message listener /// </summary> /// <param name="msgID"></param> /// <param name="l"></param> public void AddCancelListener(int msgID, DimseListenerI l) { cancelDispatcher.Add(msgID, l); }