Esempio n. 1
0
 /// <summary>
 ///   Wywolywana przez Peera do ktorego powrocila funkcja laczaca
 /// </summary>
 /// <param name = "peer"></param>
 /// <param name = "stateObject"></param>
 /// <param name = "success"></param>
 private void RemotePeerCreatedCallback(RemotePeer peer, object stateObject, bool success)
 {
     //            Monitor.Enter(this);
     //
     //            _callbacksCounter++;
     //
     //            if (success && !_connected)
     //            {
     //                _connected = true;
     //                _callback(stateObject, peer);
     //            }
     //            else
     //            {
     //                peer.Disconnect();
     //                if (!_connected && _callbacksCounter == _usersToConnect.Count - 1)
     //                {
             // z nikim sie nie polaczono
     //                    _callback(null, null);
     //                }
     //            }
     //
     //
     //            Monitor.Exit(this);
 }
        /// <summary>
        ///   Jesli istnieje powiazanie usera z polaczeniem, to jest usuwane i metoda zwraca tego usera
        ///   przeciwnym przypadku zwraca null.
        /// </summary>
        /// <param name = "peer">Dane polaczenie</param>
        /// <returns>Uzytkownik lub null jesli nie bylo skojarzenia</returns>
        public User RemoveUserLink(RemotePeer peer)
        {
            User user;
            if (_connectedUsers.TryGetValue(peer, out user))
            {
                if (peer == _arbiterConnection)
                {
                    UnlinkArbiter();
                }

                _connectedUsers.Remove(peer);
                _userConnections.Remove(user);
                return user;
            }
            return null;
        }