/// <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; }