chunkstream version fixedleaselication
git-svn-id: svn://db.shs.com.ru/libs@3 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -20,7 +20,7 @@ QSingleApplication::QSingleApplication(const QString & app_name): QThread() {
|
||||
shm.attach();
|
||||
shm.lock();
|
||||
void * d = shm.data();
|
||||
if (d) qMemSet(d, 0, sizeof(quint32));
|
||||
if (d) memset(d, 0, sizeof(quint32));
|
||||
shm.unlock();
|
||||
start();
|
||||
//qDebug() << "start listen";
|
||||
@@ -49,11 +49,11 @@ void QSingleApplication::sendMessage(const QByteArray & m) {
|
||||
quint32 num(0), size = m.size();
|
||||
void * d = shm.data();
|
||||
if (d) {
|
||||
qMemCopy(&num, d, sizeof(quint32));
|
||||
memcpy(&num, d, sizeof(quint32));
|
||||
num++;
|
||||
qMemCopy(d, &num, sizeof(quint32));
|
||||
qMemCopy((((char*)d) + sizeof(quint32)), &size, sizeof(quint32));
|
||||
qMemCopy((((char*)d) + sizeof(quint32) + sizeof(quint32)), m.constData(), size);
|
||||
memcpy(d, &num, sizeof(quint32));
|
||||
memcpy((((char*)d) + sizeof(quint32)), &size, sizeof(quint32));
|
||||
memcpy((((char*)d) + sizeof(quint32) + sizeof(quint32)), m.constData(), size);
|
||||
}
|
||||
shm.unlock();
|
||||
}
|
||||
@@ -65,15 +65,15 @@ void QSingleApplication::run() {
|
||||
shm.lock();
|
||||
const void * d = shm.constData();
|
||||
if (d) {
|
||||
qMemCopy(&num, d, sizeof(quint32));
|
||||
memcpy(&num, d, sizeof(quint32));
|
||||
if (pnum != num) {
|
||||
pnum = num;
|
||||
//qDebug() << "new message" << num;
|
||||
qMemCopy(&size, (((const char*)d) + sizeof(quint32)), sizeof(quint32));
|
||||
memcpy(&size, (((const char*)d) + sizeof(quint32)), sizeof(quint32));
|
||||
if (size <= int(QSA_MSGSIZE)) {
|
||||
QByteArray msg;
|
||||
msg.resize(size);
|
||||
qMemCopy(msg.data(), (((const char*)d) + sizeof(quint32) + sizeof(quint32)), size);
|
||||
memcpy(msg.data(), (((const char*)d) + sizeof(quint32) + sizeof(quint32)), size);
|
||||
emit messageReceived(msg);
|
||||
} else {
|
||||
qDebug() << "[QSingleApplication] Invalid message size:" << size;
|
||||
|
||||
Reference in New Issue
Block a user