Mercurial > hg > piper-cpp
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; |