Exemplo n.º 1
0
bool ccWebsocketManager::performWebsocketEvent(ccWebsocket::ccWebSocketEvent eEvent, std::shared_ptr<ccWebsocket> pWS, const std::string& strData)
{
    std::lock_guard<std::mutex> lock(_mtxFunction);

    if (hasUri(pWS->getUri()) == false)
        return false;

    _aFunctions[pWS->getUri()](eEvent, pWS, strData);

    if (eEvent == ccWebsocket::ccWebSocketEvent_Disconnected)
        removeWebsocket(pWS);

    return true;
}
QVariantMap FileTransferChannelCreationProperties::createRequest() const
{
    if (!isValid()) {
        warning() << "Invalid file transfer creation properties";
        return QVariantMap();
    }

    QVariantMap request;
    request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".ChannelType"),
                   TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER);
    request.insert(TP_QT_IFACE_CHANNEL + QLatin1String(".TargetHandleType"),
                   (uint) Tp::HandleTypeContact);

    request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Filename"),
                   suggestedFileName());
    request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentType"),
                   contentType());
    request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Size"),
                   size());

    if (hasContentHash()) {
        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentHashType"),
                       (uint) contentHashType());
        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".ContentHash"),
                       contentHash());
    }

    if (hasDescription()) {
        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Description"),
                       description());
    }

    if (hasLastModificationTime()) {
        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".Date"),
                       (qulonglong) lastModificationTime().toTime_t());
    }

    if (hasUri()) {
        request.insert(TP_QT_IFACE_CHANNEL_TYPE_FILE_TRANSFER + QLatin1String(".URI"),
                       uri());
    }

    return request;
}
Exemplo n.º 3
0
bool ccWebsocketManager::addWebsocket(std::shared_ptr<ccWebsocket> pNewWS)
{
    if (!hasUri(pNewWS->getUri()))
        return false;

    //  add new group
    auto it = _aWSGList.find(pNewWS->getUri());

    if (it != _aWSGList.end())
        it->second->add(pNewWS);
    else
    {
        std::shared_ptr<ccWebsocketGroup> newGroup(new ccWebsocketGroup(pNewWS->getUri()));
        _aWSGList[pNewWS->getUri()] = newGroup;

        newGroup->add(pNewWS);
    }

    return true;
}