diff options
| author | Julian Andres Klode <jak@debian.org> | 2009-07-16 19:36:58 +0200 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2009-07-16 19:36:58 +0200 |
| commit | 0153cede3726849504b04dabdebc8460c1c0fc91 (patch) | |
| tree | 97519b677c42cab89faa794621713664a17473f9 /python/progress.cc | |
| parent | 7e5b2dee624fb0fb7a6536cfdc74d30eeca8ffbe (diff) | |
| download | python-apt-0153cede3726849504b04dabdebc8460c1c0fc91.tar.gz | |
python/progress.h: Add Py{Acquire,Op}ProgressObject.
Diffstat (limited to 'python/progress.cc')
| -rw-r--r-- | python/progress.cc | 85 |
1 files changed, 48 insertions, 37 deletions
diff --git a/python/progress.cc b/python/progress.cc index 1f17afdf..6f226ef8 100644 --- a/python/progress.cc +++ b/python/progress.cc @@ -245,43 +245,54 @@ bool PyFetchProgress::Pulse(pkgAcquire * Owner) if(callbackInst == 0) return false; - // set stats - PyObject *o; - - - o = Py_BuildValue("d", FetchedBytes); - PyObject_SetAttrString(callbackInst, "fetched_bytes", o); - Py_DECREF(o); - o = Py_BuildValue("d", CurrentCPS); - if(PyObject_HasAttrString(callbackInst, "current_cps")) - PyObject_SetAttrString(callbackInst, "current_cps", o); - else - PyObject_SetAttrString(callbackInst, "currentCPS", o); - Py_XDECREF(o); - o = Py_BuildValue("d", CurrentBytes); - if(PyObject_HasAttrString(callbackInst, "current_bytes")) - PyObject_SetAttrString(callbackInst, "current_bytes", o); - else - PyObject_SetAttrString(callbackInst, "currentBytes", o); - Py_XDECREF(o); - o = Py_BuildValue("k", CurrentItems); - if(PyObject_HasAttrString(callbackInst, "current_items")) - PyObject_SetAttrString(callbackInst, "current_items", o); - else - PyObject_SetAttrString(callbackInst, "currentItems", o); - Py_XDECREF(o); - o = Py_BuildValue("k", TotalItems); - if(PyObject_HasAttrString(callbackInst, "total_items")) - PyObject_SetAttrString(callbackInst, "total_items", o); - else - PyObject_SetAttrString(callbackInst, "totalItems", o); - Py_XDECREF(o); - o = Py_BuildValue("d", TotalBytes); - if(PyObject_HasAttrString(callbackInst, "total_bytes")) - PyObject_SetAttrString(callbackInst, "total_bytes", o); - else - PyObject_SetAttrString(callbackInst, "totalBytes", o); - Py_XDECREF(o); + if (PyObject_TypeCheck(callbackInst, &PyAcquireProgress_Type)) { + PyAcquireProgressObject *obj = (PyAcquireProgressObject *)callbackInst; + obj->last_bytes = LastBytes; + obj->current_cps = CurrentCPS; + obj->current_bytes = CurrentBytes; + obj->total_bytes = TotalBytes; + obj->fetched_bytes = FetchedBytes; + obj->elapsed_time = ElapsedTime; + obj->total_items = TotalItems; + obj->current_items = CurrentItems; + } + else { + // set stats + PyObject *o; + o = Py_BuildValue("d", FetchedBytes); + PyObject_SetAttrString(callbackInst, "fetched_bytes", o); + Py_DECREF(o); + o = Py_BuildValue("d", CurrentCPS); + if(PyObject_HasAttrString(callbackInst, "current_cps")) + PyObject_SetAttrString(callbackInst, "current_cps", o); + else + PyObject_SetAttrString(callbackInst, "currentCPS", o); + Py_XDECREF(o); + o = Py_BuildValue("d", CurrentBytes); + if(PyObject_HasAttrString(callbackInst, "current_bytes")) + PyObject_SetAttrString(callbackInst, "current_bytes", o); + else + PyObject_SetAttrString(callbackInst, "currentBytes", o); + Py_XDECREF(o); + o = Py_BuildValue("k", CurrentItems); + if(PyObject_HasAttrString(callbackInst, "current_items")) + PyObject_SetAttrString(callbackInst, "current_items", o); + else + PyObject_SetAttrString(callbackInst, "currentItems", o); + Py_XDECREF(o); + o = Py_BuildValue("k", TotalItems); + if(PyObject_HasAttrString(callbackInst, "total_items")) + PyObject_SetAttrString(callbackInst, "total_items", o); + else + PyObject_SetAttrString(callbackInst, "totalItems", o); + Py_XDECREF(o); + o = Py_BuildValue("d", TotalBytes); + if(PyObject_HasAttrString(callbackInst, "total_bytes")) + PyObject_SetAttrString(callbackInst, "total_bytes", o); + else + PyObject_SetAttrString(callbackInst, "totalBytes", o); + Py_XDECREF(o); + } if (PyObject_TypeCheck(callbackInst, &PyAcquireProgress_Type)) { PyObject *result1; |
