Switched to a transaction for TelldusCoreEvents as well. This since Windows seems to behave strange otherwise.

This commit is contained in:
Micke Prag 2010-09-01 14:07:58 +00:00
parent 9f7928076e
commit 6ace9fb071
3 changed files with 6 additions and 3 deletions

View file

@ -137,6 +137,8 @@ void Manager::run() {
while( d->eventSocket.connected() ) {
logMessage("-> OVERLAPPED read");
std::string data(d->eventSocket.read());
Message message("Tack");
d->eventSocket.write(message);
logMessage("<- OVERLAPPED result:");
logMessage(data);
if (data.length() == 0) {

View file

@ -85,12 +85,13 @@ void Socket::disconnect() {
}
void Socket::write(const TelldusService::Message &msg) {
DWORD bytesWritten = 0;
this->writeOverlapped(msg);
/*DWORD bytesWritten = 0;
if (WriteFile(d->hPipe, msg.data(), (DWORD)msg.length(), &bytesWritten, NULL)) {
FlushFileBuffers(d->hPipe);
} else {
d->connected = false;
}
}*/
}
void Socket::writeOverlapped(const TelldusService::Message &msg) {

View file

@ -130,7 +130,7 @@ void TelldusCore::rawDeviceEventSlot(const QString &data, int controllerId) {
void TelldusCore::sendEventMessage(const Message &msg) {
foreach(Socket *s, d->eventSockets) {
s->write(msg);
std::string ret = s->readWriteOverlapped(msg);
}
}