comparison vamp-client/ProcessQtTransport.h @ 124:4ff643c1eccc

Remove some debug again by default
author Chris Cannam <c.cannam@qmul.ac.uk>
date Thu, 27 Oct 2016 16:14:22 +0100
parents 2380d5865355
children ea06fae1567c
comparison
equal deleted inserted replaced
123:6b11ca6bb0a3 124:4ff643c1eccc
42 #include <QString> 42 #include <QString>
43 #include <QMutex> 43 #include <QMutex>
44 44
45 #include <iostream> 45 #include <iostream>
46 46
47 //#define DEBUG_TRANSPORT 1
48
47 namespace piper_vamp { 49 namespace piper_vamp {
48 namespace client { 50 namespace client {
49 51
50 /** 52 /**
51 * A SynchronousTransport implementation that spawns a sub-process 53 * A SynchronousTransport implementation that spawns a sub-process
64 m_process = new QProcess(); 66 m_process = new QProcess();
65 m_process->setReadChannel(QProcess::StandardOutput); 67 m_process->setReadChannel(QProcess::StandardOutput);
66 m_process->setProcessChannelMode(QProcess::ForwardedErrorChannel); 68 m_process->setProcessChannelMode(QProcess::ForwardedErrorChannel);
67 69
68 m_process->start(QString::fromStdString(processName), 70 m_process->start(QString::fromStdString(processName),
69 { "-d", QString::fromStdString(formatArg) }); 71 { QString::fromStdString(formatArg) });
70 72
71 if (!m_process->waitForStarted()) { 73 if (!m_process->waitForStarted()) {
72 if (m_process->state() == QProcess::NotRunning) { 74 if (m_process->state() == QProcess::NotRunning) {
73 QProcess::ProcessError err = m_process->error(); 75 QProcess::ProcessError err = m_process->error();
74 if (err == QProcess::FailedToStart) { 76 if (err == QProcess::FailedToStart) {
93 if (m_process->state() != QProcess::NotRunning) { 95 if (m_process->state() != QProcess::NotRunning) {
94 m_process->closeWriteChannel(); 96 m_process->closeWriteChannel();
95 m_process->waitForFinished(200); 97 m_process->waitForFinished(200);
96 m_process->close(); 98 m_process->close();
97 m_process->waitForFinished(); 99 m_process->waitForFinished();
100 #ifdef DEBUG_TRANSPORT
98 std::cerr << "server exited" << std::endl; 101 std::cerr << "server exited" << std::endl;
102 #endif
99 } 103 }
100 delete m_process; 104 delete m_process;
101 } 105 }
102 } 106 }
103 107
119 123
120 if (!m_completenessChecker) { 124 if (!m_completenessChecker) {
121 throw std::logic_error("No completeness checker set on transport"); 125 throw std::logic_error("No completeness checker set on transport");
122 } 126 }
123 127
128 #ifdef DEBUG_TRANSPORT
124 std::cerr << "writing " << size << " bytes to server" << std::endl; 129 std::cerr << "writing " << size << " bytes to server" << std::endl;
130 #endif
125 m_process->write(ptr, size); 131 m_process->write(ptr, size);
126 132
127 std::vector<char> buffer; 133 std::vector<char> buffer;
128 bool complete = false; 134 bool complete = false;
129 135
130 while (!complete) { 136 while (!complete) {
131 137
132 qint64 byteCount = m_process->bytesAvailable(); 138 qint64 byteCount = m_process->bytesAvailable();
133 139
134 if (!byteCount) { 140 if (!byteCount) {
141 #ifdef DEBUG_TRANSPORT
135 std::cerr << "waiting for data from server..." << std::endl; 142 std::cerr << "waiting for data from server..." << std::endl;
143 #endif
136 m_process->waitForReadyRead(1000); 144 m_process->waitForReadyRead(1000);
137 if (m_process->state() == QProcess::NotRunning) { 145 if (m_process->state() == QProcess::NotRunning) {
138 QProcess::ProcessError err = m_process->error(); 146 QProcess::ProcessError err = m_process->error();
139 if (err == QProcess::Crashed) { 147 if (err == QProcess::Crashed) {
140 std::cerr << "Server crashed during request" << std::endl; 148 std::cerr << "Server crashed during request" << std::endl;