/// <summary> /// Process a control message received from the WM. /// </summary> private void ProcessWmControlMsg(KcmControlMsg msg) { Debug.Assert(msg is KcmConnectionRequest); KcmConnectionRequest req = (KcmConnectionRequest)msg; // Handle new KAS to connect. if (req.ConnectFlag) { Debug.Assert(!m_kasTree.ContainsKey(req.KasID)); m_kasTree[req.KasID] = new KcmKas(req.KasID); } // Disconnect the KAS, if we didn't disconnect it yet. else { if (!m_kasTree.ContainsKey(req.KasID)) return; KcmKas kas = m_kasTree[req.KasID]; if (kas.ConnStatus == KcmKasConnectionStatus.Disconnected) return; HandleDisconnectedKas(kas, null); } }
/// <summary> /// Process an control messages received from the KCM. /// </summary> private void ProcessKcmControlMsg(KcmControlMsg m) { // Dispatch the message. if (m is KcmConnectionNotice) ProcessKcmConnectionNotice((KcmConnectionNotice)m); else if (m is KcmDisconnectionNotice) ProcessKcmDisconnectionNotice((KcmDisconnectionNotice)m); else throw new Exception("unexpected KCM control message received"); }