mirror of
https://github.com/YACReader/yacreader
synced 2025-06-04 01:28:55 -04:00
Qt 4.8.5
fixed comiccontroller, now ComicFiles are loaded in a background thread (7z.dll) fixed local comunications, no more read/write locks
This commit is contained in:
parent
19fcc5b826
commit
9b2b9d2b8b
@ -37,24 +37,38 @@ bool YACReaderLocalClient::requestComicInfo(quint64 libraryId, ComicDB & comic,
|
|||||||
out << (quint16)(block.size() - sizeof(quint16));
|
out << (quint16)(block.size() - sizeof(quint16));
|
||||||
|
|
||||||
int written = 0;
|
int written = 0;
|
||||||
while(written != block.size())
|
int tries = 0;
|
||||||
|
while(written != block.size() && tries < 200)
|
||||||
{
|
{
|
||||||
written += localSocket->write(block);
|
written += localSocket->write(block);
|
||||||
localSocket->flush();
|
localSocket->flush();
|
||||||
|
tries++;
|
||||||
}
|
}
|
||||||
|
if(tries == 200)
|
||||||
|
return false;
|
||||||
|
|
||||||
//QByteArray data;
|
//QByteArray data;
|
||||||
while(localSocket->bytesAvailable() < sizeof(quint16))
|
tries = 0;
|
||||||
localSocket->waitForReadyRead();
|
while(localSocket->bytesAvailable() < sizeof(quint16) && tries < 200)
|
||||||
|
{
|
||||||
|
localSocket->waitForReadyRead(10);
|
||||||
|
tries++;
|
||||||
|
}
|
||||||
|
if(tries == 200)
|
||||||
|
return false;
|
||||||
QDataStream sizeStream(localSocket->read(sizeof(quint16)));
|
QDataStream sizeStream(localSocket->read(sizeof(quint16)));
|
||||||
sizeStream.setVersion(QDataStream::Qt_4_8);
|
sizeStream.setVersion(QDataStream::Qt_4_8);
|
||||||
quint16 totalSize = 0;
|
quint16 totalSize = 0;
|
||||||
sizeStream >> totalSize;
|
sizeStream >> totalSize;
|
||||||
|
|
||||||
while(localSocket->bytesAvailable() < totalSize )
|
tries = 0;
|
||||||
|
while(localSocket->bytesAvailable() < totalSize && tries < 200 )
|
||||||
{
|
{
|
||||||
localSocket->waitForReadyRead();
|
localSocket->waitForReadyRead(10);
|
||||||
|
tries++;
|
||||||
}
|
}
|
||||||
|
if(tries == 200)
|
||||||
|
return false;
|
||||||
QDataStream dataStream(localSocket->read(totalSize));
|
QDataStream dataStream(localSocket->read(totalSize));
|
||||||
dataStream >> comic;
|
dataStream >> comic;
|
||||||
dataStream >> siblings;
|
dataStream >> siblings;
|
||||||
@ -80,10 +94,14 @@ bool YACReaderLocalClient::sendComicInfo(quint64 libraryId, ComicDB & comic)
|
|||||||
out << (quint16)(block.size() - sizeof(quint16));
|
out << (quint16)(block.size() - sizeof(quint16));
|
||||||
|
|
||||||
int written = 0;
|
int written = 0;
|
||||||
while(written != block.size())
|
int tries = 0;
|
||||||
|
while(written != block.size() && tries < 100)
|
||||||
{
|
{
|
||||||
written += localSocket->write(block);
|
written += localSocket->write(block);
|
||||||
|
tries++;
|
||||||
}
|
}
|
||||||
|
if(tries == 100 && written != block.size())
|
||||||
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -50,8 +50,7 @@ void ComicController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
if(comicFile != NULL)
|
if(comicFile != NULL)
|
||||||
{
|
{
|
||||||
QThread * thread = NULL;
|
QThread * thread = NULL;
|
||||||
if (typeid(*comicFile) != typeid(FileComic))
|
|
||||||
{
|
|
||||||
thread = new QThread();
|
thread = new QThread();
|
||||||
|
|
||||||
comicFile->moveToThread(thread);
|
comicFile->moveToThread(thread);
|
||||||
@ -59,8 +58,6 @@ void ComicController::service(HttpRequest& request, HttpResponse& response)
|
|||||||
connect(thread, SIGNAL(started()), comicFile, SLOT(process()));
|
connect(thread, SIGNAL(started()), comicFile, SLOT(process()));
|
||||||
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
|
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
comicFile->load(libraries.value(libraryName)+comic.path);
|
comicFile->load(libraries.value(libraryName)+comic.path);
|
||||||
|
|
||||||
if(thread != NULL)
|
if(thread != NULL)
|
||||||
|
@ -32,19 +32,29 @@ void YACReaderLocalServer::sendResponse()
|
|||||||
|
|
||||||
quint64 libraryId;
|
quint64 libraryId;
|
||||||
ComicDB comic;
|
ComicDB comic;
|
||||||
|
int tries = 0;
|
||||||
|
|
||||||
//QByteArray data;
|
//QByteArray data;
|
||||||
while(clientConnection->bytesAvailable() < sizeof(quint16))
|
while(clientConnection->bytesAvailable() < sizeof(quint16) && tries < 200)
|
||||||
clientConnection->waitForReadyRead();
|
{
|
||||||
|
clientConnection->waitForReadyRead(10);
|
||||||
|
tries++;
|
||||||
|
}
|
||||||
|
if(tries == 200)
|
||||||
|
return;
|
||||||
QDataStream sizeStream(clientConnection->read(sizeof(quint16)));
|
QDataStream sizeStream(clientConnection->read(sizeof(quint16)));
|
||||||
sizeStream.setVersion(QDataStream::Qt_4_8);
|
sizeStream.setVersion(QDataStream::Qt_4_8);
|
||||||
quint16 totalSize = 0;
|
quint16 totalSize = 0;
|
||||||
sizeStream >> totalSize;
|
sizeStream >> totalSize;
|
||||||
|
|
||||||
while(clientConnection->bytesAvailable() < totalSize )
|
tries = 0;
|
||||||
|
while(clientConnection->bytesAvailable() < totalSize && tries < 200)
|
||||||
{
|
{
|
||||||
clientConnection->waitForReadyRead();
|
clientConnection->waitForReadyRead(10);
|
||||||
|
tries++;
|
||||||
}
|
}
|
||||||
|
if(tries == 200)
|
||||||
|
return;
|
||||||
QDataStream dataStream(clientConnection->read(totalSize));
|
QDataStream dataStream(clientConnection->read(totalSize));
|
||||||
quint8 msgType;
|
quint8 msgType;
|
||||||
dataStream >> msgType;
|
dataStream >> msgType;
|
||||||
@ -68,11 +78,18 @@ void YACReaderLocalServer::sendResponse()
|
|||||||
out << (quint16)(block.size() - sizeof(quint16));
|
out << (quint16)(block.size() - sizeof(quint16));
|
||||||
|
|
||||||
int written = 0;
|
int written = 0;
|
||||||
while(written != block.size())
|
tries = 0;
|
||||||
|
while(written != block.size() && tries < 200)
|
||||||
{
|
{
|
||||||
written += clientConnection->write(block);
|
int ret = clientConnection->write(block);
|
||||||
|
if(ret != -1)
|
||||||
|
{
|
||||||
|
written += ret;
|
||||||
clientConnection->flush();
|
clientConnection->flush();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
tries++;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case YACReaderIPCMessages::SendComicInfo:
|
case YACReaderIPCMessages::SendComicInfo:
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
|
|
||||||
echo Setting up a Qt environment...
|
echo Setting up a Qt environment...
|
||||||
|
|
||||||
set QTDIR=D:\Desarrollo\Qt\4.8.4
|
set QTDIR=D:\Desarrollo\Qt\4.8.5
|
||||||
echo -- QTDIR set to D:\Desarrollo\Qt\4.8.4
|
echo -- QTDIR set to D:\Desarrollo\Qt\4.8.5
|
||||||
set PATH=D:\Desarrollo\Qt\4.8.4\bin;%PATH%
|
set PATH=D:\Desarrollo\Qt\4.8.5\bin;%PATH%
|
||||||
echo -- Added D:\Desarrollo\Qt\4.8.4\bin to PATH
|
echo -- Added D:\Desarrollo\Qt\4.8.5\bin to PATH
|
||||||
set QMAKESPEC=win32-msvc2010
|
set QMAKESPEC=win32-msvc2010
|
||||||
echo -- QMAKESPEC set to "win32-msvc2010"
|
echo -- QMAKESPEC set to "win32-msvc2010"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user