本文整理汇总了C++中Downloader::mutex方法的典型用法代码示例。如果您正苦于以下问题:C++ Downloader::mutex方法的具体用法?C++ Downloader::mutex怎么用?C++ Downloader::mutex使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Downloader
的用法示例。
在下文中一共展示了Downloader::mutex方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: curl_progress
int curl_progress(void *pointer, double dltotal, double dlnow, double ultotal, double ulnow)
{
Q_UNUSED(dltotal);
Q_UNUSED(dlnow);
Q_UNUSED(ultotal);
Q_UNUSED(ulnow);
Downloader *dl = (Downloader *)pointer;
dl->mutex()->lock ();
bool aborted = dl->stream()->aborted;
dl->mutex()->unlock();
if (aborted)
{
return -1;
}
return 0;
}
示例2: curl_header
static size_t curl_header(void *data, size_t size, size_t nmemb,
void *pointer)
{
Downloader *dl = (Downloader *)pointer;
dl->mutex()->lock ();
size_t data_size = size * nmemb;
if (data_size < 3)
{
dl->mutex()->unlock();
return data_size;
}
//qDebug("header received: %s", (char*) data);
QString str = QString::fromAscii((char *) data, data_size);
str = str.trimmed ();
if (str.left(4).contains("HTTP"))
{
qDebug("Downloader: header received");
//TODO open metadata socket
}
else if (str.left(4).contains("ICY"))
{
qDebug("Downloader: shoutcast header received");
//dl->stream()->icy_meta_data = true;
}
else
{
QString key = str.left(str.indexOf(":")).trimmed().toLower();
QString value = str.right(str.size() - str.indexOf(":") - 1).trimmed().toLower();
dl->stream()->header.insert(key, value);
qDebug("Downloader: key=%s, value=%s",qPrintable(key),qPrintable(value));
if (key == "icy-metaint")
{
dl->stream()->icy_metaint = value.toInt();
dl->stream()->icy_meta_data = true;
}
}
dl->mutex()->unlock();
return data_size;
}