QtcProcess: Add closeWriteChannel()

Change-Id: I080be230ec420ead2866f9481123125361e57033
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit is contained in:
Jarek Kobus
2023-01-24 07:23:44 +01:00
parent 34fd5b3ced
commit 8e3a22329d
13 changed files with 67 additions and 29 deletions

View File

@@ -84,8 +84,8 @@ void LauncherSocketHandler::handleSocketData()
case LauncherPacketType::WriteIntoProcess:
handleWritePacket();
break;
case LauncherPacketType::StopProcess:
handleStopPacket();
case LauncherPacketType::ControlProcess:
handleControlPacket();
break;
case LauncherPacketType::Shutdown:
handleShutdownPacket();
@@ -211,7 +211,7 @@ void LauncherSocketHandler::handleWritePacket()
process->write(packet.inputData);
}
void LauncherSocketHandler::handleStopPacket()
void LauncherSocketHandler::handleControlPacket()
{
Process * const process = m_processes.value(m_packetParser.token());
if (!process) {
@@ -220,20 +220,23 @@ void LauncherSocketHandler::handleStopPacket()
logDebug("Got stop request for unknown process");
return;
}
const auto packet = LauncherPacket::extractPacket<StopProcessPacket>(
const auto packet = LauncherPacket::extractPacket<ControlProcessPacket>(
m_packetParser.token(),
m_packetParser.packetData());
switch (packet.signalType) {
case StopProcessPacket::SignalType::Terminate:
case ControlProcessPacket::SignalType::Terminate:
process->terminate();
break;
case StopProcessPacket::SignalType::Kill:
case ControlProcessPacket::SignalType::Kill:
process->kill();
break;
case StopProcessPacket::SignalType::Close:
case ControlProcessPacket::SignalType::Close:
removeProcess(process->token());
break;
case ControlProcessPacket::SignalType::CloseWriteChannel:
process->closeWriteChannel();
break;
}
}

View File

@@ -39,7 +39,7 @@ private:
void handleStartPacket();
void handleWritePacket();
void handleStopPacket();
void handleControlPacket();
void handleShutdownPacket();
void sendPacket(const LauncherPacket &packet);