Beispiel #1
0
//	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;
    }
}
Beispiel #2
0
//	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;
	}
}