有问题的cURL版本/操作系统是7.15和Red Hat 5,这些都是一成不变的,所以不能改变它们.
根本没有调用的实际进度函数
int CurlUtil::progressCallback(void *clientp, double dltotal, double dlnow,
double ultotal, double ulnow)
{
DEFN_METHOD_NAME( "progressCallback" );
EX_ENTRY_EXIT();
EX_DEBUG("Total downloaded " << dlnow << "/" << dltotal);
EX_DEBUG("Total uploaded " << ulnow << "/" << ultotal);
CurlUtil* curlUtil = (CurlUtil*)clientp;
// If you return anything but 0, curl will abort transfer
return (true == curlUtil->killed()) ? 1 : 0;
}
Run Code Online (Sandbox Code Playgroud)
设置代码:
curl_easy_setopt(m_curl, CURLOPT_NOPROGRESS, 0);
curl_easy_setopt(m_curl, CURLOPT_PROGRESSFUNCTION, CurlUtil::progressCallback);
curl_easy_setopt(m_curl, CURLOPT_PROGRESSDATA, this)
Run Code Online (Sandbox Code Playgroud)
其中CurlUtil是代码所在的类.CURLOPT_DEBUGFUNCTION工作正常,并以相同的方式设置在完全相同的函数中.
我希望有一个对象列表,它们都从包含函数go()的同一接口继承.
public interface goers{
public void go();
}
Run Code Online (Sandbox Code Playgroud)
现在我有3个类都可以实现,为了简单起见,我们只需要将它们称为A,B和C.
在另一个班级,我有一个List<Class<? extends goers>>我想做的.
for (Class<? extends goers> gos : list)
{
gos.go();
}
Run Code Online (Sandbox Code Playgroud)
但它不会编译,因为编译器没有从应用于列表的所有成员的接口中获取go方法.