| 116 | } |
| 117 | |
| 118 | bool YACReaderLocalClient::sendComicInfo(quint64 libraryId, ComicDB &comic) |
| 119 | { |
| 120 | localSocket->connectToServer(YACREADERLIBRARY_GUID); |
| 121 | if (localSocket->isOpen()) { |
| 122 | // QLOG_INFO() << "Connection opened for sending ComicInfo"; |
| 123 | QByteArray block; |
| 124 | QDataStream out(&block, QIODevice::WriteOnly); |
| 125 | out.setVersion(QDataStream::Qt_4_8); |
| 126 | out << (quint32)0; |
| 127 | out << (quint8)YACReader::SendComicInfo; |
| 128 | out << libraryId; |
| 129 | out << comic; |
| 130 | out.device()->seek(0); |
| 131 | out << (quint32)(block.size() - sizeof(quint32)); |
| 132 | |
| 133 | int written, previousWritten; |
| 134 | written = previousWritten = 0; |
| 135 | int tries = 0; |
| 136 | while (written != block.size() && tries < 100) { |
| 137 | written += localSocket->write(block); |
| 138 | if (written == previousWritten) |
| 139 | tries++; |
| 140 | previousWritten = written; |
| 141 | } |
| 142 | localSocket->waitForBytesWritten(2000); |
| 143 | localSocket->close(); |
| 144 | // QLOG_INFO() << QString("Sending Comic Info : writen data (%1,%2)").arg(written).arg(block.size()); |
| 145 | if (tries == 100 && written != block.size()) { |
| 146 | emit finished(); |
| 147 | QLOG_ERROR() << QString("Sending Comic Info : unable to write data (%1,%2)").arg(written).arg(block.size()); |
| 148 | return false; |
| 149 | } |
| 150 | emit finished(); |
| 151 | return true; |
| 152 | } |
| 153 | |
| 154 | emit finished(); |
| 155 | QLOG_ERROR() << "Sending Comic Info : unable to connect to the server"; |
| 156 | return false; |
| 157 | } |
| 158 | |
| 159 | bool YACReaderLocalClient::sendComicInfo(quint64 libraryId, ComicDB &comic, qulonglong nextComicId) |
| 160 | { |