MCPcopy Create free account
hub / github.com/MultiMC/Launcher / sendMessage

Method sendMessage

libraries/LocalPeer/src/LocalPeer.cpp:158–201  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

156
157
158bool LocalPeer::sendMessage(const QByteArray &message, int timeout)
159{
160 if (!isClient())
161 return false;
162
163 QLocalSocket socket;
164 bool connOk = false;
165 for(int i = 0; i < 2; i++) {
166 // Try twice, in case the other instance is just starting up
167 socket.connectToServer(socketName);
168 connOk = socket.waitForConnected(timeout/2);
169 if (connOk || i)
170 {
171 break;
172 }
173 std::this_thread::sleep_for(std::chrono::milliseconds(250));
174 }
175 if (!connOk)
176 {
177 return false;
178 }
179
180 QByteArray uMsg(message);
181 QDataStream ds(&socket);
182
183 ds.writeBytes(uMsg.constData(), uMsg.size());
184 if(!socket.waitForBytesWritten(timeout))
185 {
186 return false;
187 }
188
189 // wait for 'ack'
190 if(!socket.waitForReadyRead(timeout))
191 {
192 return false;
193 }
194
195 // make sure we got 'ack'
196 if(!(socket.read(qstrlen(ack)) == ack))
197 {
198 return false;
199 }
200 return true;
201}
202
203
204void LocalPeer::receiveConnection()

Callers 1

ApplicationMethod · 0.80

Calls 2

sizeMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected