Example #1
0
        /// <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);
            }
        }
Example #2
0
 /// <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");
 }