void MorseTextChannel::whenChatMessageReceived(uint senderHandle, const QString &message, quint32 messageId, quint32 flags, uint timestamp) { #if TP_QT_VERSION >= TP_QT_VERSION_CHECK(0, 9, 7) const QString identifier = m_groupIface->memberIdentifiers().value(senderHandle); processReceivedMessage(senderHandle, identifier, message, messageId, flags, timestamp); #endif }
//processes all currently pending messages //shouldn't process new pending messages if they are added while processing the current ones void processAllPending() { if (numPacketsPendingProcessing == 0) { return; } while (numPacketsPendingProcessing > 0) { processReceivedMessage(removeProcessPendingMsg()); } }
void connectToServerAsWorker() { int sockfd, n; const int BUFFER_SIZE = 1024; char buffer[BUFFER_SIZE]; struct sockaddr_in serv_addr; struct hostent *server; printf("[connectToServerAsWorker] Connecting to %s:%d\n", serverHost, serverPort); fflush(stdout); /* Set up socket stuff */ sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd < 0) { error("[connectToServerAsWorker] ERROR opening socket"); printf("[connectToServerAsWorker] ERROR opening socket"); fflush(stdout); } server = gethostbyname(serverHost); if (server == NULL) { fprintf(stderr,"[connectToServerAsWorker] ERROR, no such host\n"); printf("[connectToServerAsWorker] ERROR, no such host\n"); exit(0); } bzero((char *) &serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length); serv_addr.sin_port = htons(serverPort); /* Try to connect to server listening on host/port */ if (connect(sockfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr)) < 0) { error("[connectToServerAsWorker] ERROR connecting"); printf("[connectToServerAsWorker] ERROR connecting\n"); fflush(stdout); } bzero(buffer,BUFFER_SIZE); bool shutdown = false; printf("[connectToServerAsWorker] Connected!!\n"); while(!shutdown && read(sockfd,buffer,BUFFER_SIZE-1)) { shutdown = processReceivedMessage(buffer, BUFFER_SIZE-1, sockfd); bzero(buffer,BUFFER_SIZE); } printf("[connectToServerAsWorker] Shutting down...\n"); }
void RTTeensyLink::background() { while (Serial.available()) { if (!RTTeensyLinkReassemble(&(m_RXFrame), Serial.read())) { sendDebugMessage("Reassembly error"); } else { if (m_RXFrame.complete) { processReceivedMessage(); RTTeensyLinkRXFrameInit(&(m_RXFrame), &(m_RXFrameBuffer)); } } } }
void RTArduLink::background() { unsigned char index; RTARDULINK_PORT *portInfo; for (index = 0; index < RTARDULINKHAL_MAX_PORTS; index++) { portInfo = m_ports + index; if (!portInfo->inUse) continue; while (RTArduLinkHALPortAvailable(&(portInfo->portHAL))) { if (!RTArduLinkReassemble(&(portInfo->RXFrame), RTArduLinkHALPortRead(&(portInfo->portHAL)))) { sendDebugMessage("Reassembly error"); } else { if (portInfo->RXFrame.complete) { processReceivedMessage(portInfo); RTArduLinkRXFrameInit(&(portInfo->RXFrame), &(portInfo->RXFrameBuffer)); } } } } }
void MorseTextChannel::whenMessageReceived(const QString &message, quint32 messageId, quint32 flags, uint timestamp) { processReceivedMessage(m_targetHandle, m_targetID, message, messageId, flags, timestamp); }