QTfrontend/tcpBase.cpp
changeset 443 eec37eb7f5db
parent 419 fdeed9718e6b
child 486 7ea71cd3acd5
equal deleted inserted replaced
442:57ed1444606e 443:eec37eb7f5db
    57   }
    57   }
    58   disconnect(IPCServer, SIGNAL(newConnection()), this, SLOT(NewConnection()));
    58   disconnect(IPCServer, SIGNAL(newConnection()), this, SLOT(NewConnection()));
    59   IPCSocket = IPCServer->nextPendingConnection();
    59   IPCSocket = IPCServer->nextPendingConnection();
    60   if(!IPCSocket) return;
    60   if(!IPCSocket) return;
    61   connect(IPCSocket, SIGNAL(disconnected()), this, SLOT(ClientDisconnect()));
    61   connect(IPCSocket, SIGNAL(disconnected()), this, SLOT(ClientDisconnect()));
    62   connect(IPCSocket, SIGNAL(disconnected()), IPCSocket, SLOT(deleteLater()));
       
    63   connect(IPCSocket, SIGNAL(readyRead()), this, SLOT(ClientRead()));
    62   connect(IPCSocket, SIGNAL(readyRead()), this, SLOT(ClientRead()));
    64   SendToClientFirst();
    63   SendToClientFirst();
    65 }
    64 }
    66 
    65 
    67 void TCPBase::RealStart()
    66 void TCPBase::RealStart()
    76   process->start(bindir->absolutePath() + "/hwengine", arguments);
    75   process->start(bindir->absolutePath() + "/hwengine", arguments);
    77 }
    76 }
    78 
    77 
    79 void TCPBase::ClientDisconnect()
    78 void TCPBase::ClientDisconnect()
    80 {
    79 {
       
    80   disconnect(IPCSocket, SIGNAL(readyRead()), this, SLOT(ClientRead()));
    81   onClientDisconnect();
    81   onClientDisconnect();
    82 
    82 
    83   if(srvsList.size()==1) srvsList.pop_front();
    83   if(srvsList.size()==1) srvsList.pop_front();
    84   emit isReadyNow();
    84   emit isReadyNow();
       
    85   IPCSocket->deleteLater();
    85   deleteLater();
    86   deleteLater();
    86 }
    87 }
    87 
    88 
    88 void TCPBase::ClientRead()
    89 void TCPBase::ClientRead()
    89 {
    90 {
    90   readbuffer.append(IPCSocket->readAll());
    91   QByteArray readed=IPCSocket->readAll();
       
    92   if(readed.isEmpty()) return;
       
    93   readbuffer.append(readed);
    91   onClientRead();
    94   onClientRead();
    92 }
    95 }
    93 
    96 
    94 void TCPBase::StartProcessError(QProcess::ProcessError error)
    97 void TCPBase::StartProcessError(QProcess::ProcessError error)
    95 {
    98 {