summaryrefslogtreecommitdiff
path: root/python/progress.cc
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2009-07-16 19:36:58 +0200
committerJulian Andres Klode <jak@debian.org>2009-07-16 19:36:58 +0200
commit0153cede3726849504b04dabdebc8460c1c0fc91 (patch)
tree97519b677c42cab89faa794621713664a17473f9 /python/progress.cc
parent7e5b2dee624fb0fb7a6536cfdc74d30eeca8ffbe (diff)
downloadpython-apt-0153cede3726849504b04dabdebc8460c1c0fc91.tar.gz
python/progress.h: Add Py{Acquire,Op}ProgressObject.
Diffstat (limited to 'python/progress.cc')
-rw-r--r--python/progress.cc85
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;