예제 #1
0
        void IConnection.Stop()
        {
            Trace.TraceInformation("Stop");
            if (serverConnessi.Count == 0)
            {
                //vuol dire che è avvenuta qualche eccezione quindi i server sono stati già rimossi
                //per cui aggiorno la lista dei serverConnessi della MainWindow
                started           = false;
                serverAttivoIndex = -1;
                EventArgs args = new EventArgs();

                EventHandler <EventArgs> handlerRefresh = RefreshConnections;
                if (handlerRefresh != null)
                {
                    handlerRefresh(this, args);
                }
                return;
            }
            //chiudo tutte le connessioni attive
            while (serverConnessi.Count > 0)
            {
                ServerConnection server = serverConnessi[0];
                server.Disconnect();
                serverConnessi.Remove(server);
            }

            started = false;
        }
예제 #2
0
        void IConnection.Disconnect(int position)
        {
            if (serverAttivoIndex == position && serverConnessi.Count > 1 && started)
            {
                int indexToActive = position + 1;
                if (position == serverConnessi.Count - 1)
                {
                    indexToActive = 0;
                }
                ServerConnection serverToDeactive = serverConnessi[serverAttivoIndex];
                serverToDeactive.Deactive();
                serverToActiveIndex = indexToActive;
            }
            Server           server    = null;
            ServerConnection curServer = null;

            server    = serverConnessi[position].Server;
            curServer = serverConnessi[position];
            curServer.Disconnect();
            Trace.TraceInformation("Server disconnesso. Server: {0}:{1}:{2}", curServer.Server.Name, curServer.Server.IP, curServer.Server.ControlPort);
        }
예제 #3
0
 private void Disconnect()
 {
     _isRunning = false;
     _connection?.Disconnect();
     _listeningThread?.Join();
 }