// A message is to be sent void lmcMessaging::sendMessage(MessageType type, QString* lpszUserId, XmlMessage* pMessage) { QString data = QString::null; XmlMessage message; switch(type) { case MT_Group: data = pMessage->data(XN_GROUP); updateUser(type, *lpszUserId, data); break; case MT_Status: case MT_UserName: case MT_Note: case MT_PublicMessage: for(int index = 0; index < userList.count(); index++) prepareMessage(type, msgId, false, &userList[index].id, pMessage); msgId++; break; case MT_GroupMessage: if(lpszUserId) prepareMessage(type, msgId, false, lpszUserId, pMessage); else { for(int index = 0; index < userList.count(); index++) prepareMessage(type, msgId, false, &userList[index].id, pMessage); } msgId++; break; case MT_Avatar: // if user id is specified send to that user alone, else send to all if(lpszUserId) { if(pMessage->data(XN_FILEOP) == FileOpNames[FO_Request]) pMessage->addData(XN_FILEID, getUuid() ); prepareMessage(type, msgId, false, lpszUserId, pMessage); } else { for(int index = 0; index < userList.count(); index++) { message = pMessage->clone(); message.addData( XN_FILEID, getUuid() ); prepareMessage(type, msgId, false, &userList[index].id, &message); } } msgId++; break; case MT_Version: sendWebMessage(type, pMessage); break; default: prepareMessage(type, msgId, false, lpszUserId, pMessage); msgId++; break; } }
// A message is to be sent void lmcMessaging::sendMessage(MessageType type, QString* lpszUserId, XmlMessage* pMessage) { QString data = QString::null; XmlMessage message; switch(type) { case MT_Group: data = pMessage->data(XN_GROUP); updateUser(type, *lpszUserId, data); break; case MT_Status: case MT_UserName: case MT_Note: case MT_PublicMessage: for(int index = 0; index < userList.count(); index++) prepareMessage(type, msgId, false, &userList[index].id, pMessage); msgId++; break; case MT_GroupMessage: if(lpszUserId) prepareMessage(type, msgId, false, lpszUserId, pMessage); else { for(int index = 0; index < userList.count(); index++) prepareMessage(type, msgId, false, &userList[index].id, pMessage); } msgId++; break; case MT_Avatar: // if user id is specified send to that user alone, else send to all if(lpszUserId) { prepareMessage(type, msgId, false, lpszUserId, pMessage); } else { message = pMessage->clone(); emit messageReceived(MT_Avatar, &localUser->id, &message); for(int index = 0; index < userList.count(); index++) { message = pMessage->clone(); prepareMessage(type, msgId, false, &userList[index].id, &message); } } msgId++; break; case MT_Version: sendWebMessage(type, pMessage); break; default: prepareMessage(type, msgId, false, lpszUserId, pMessage); msgId++; break; } }