From 7e76103c2b13d27f4a9987b1f9fca50504177268 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 7 Apr 2005 11:44:59 +0000 Subject: * code cleanups, simple MediaChanged implemented --- python/progress.h | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'python/progress.h') diff --git a/python/progress.h b/python/progress.h index 6ea0b16b..a39ae41a 100644 --- a/python/progress.h +++ b/python/progress.h @@ -13,34 +13,39 @@ #include #include -struct PyOpProgress : public OpProgress -{ +class PyCallbackObj { + protected: PyObject *callbackInst; + public: void setCallbackInst(PyObject *o) { + Py_INCREF(o); callbackInst = o; } - virtual void Update(); - virtual void Done(); + bool RunSimpleCallback(const char *method, PyObject *arglist=NULL); - PyOpProgress() : OpProgress(), callbackInst(0) {}; + PyCallbackObj() : callbackInst(0) {}; + ~PyCallbackObj() {Py_DECREF(callbackInst); }; }; - -struct PyFetchProgress : public pkgAcquireStatus +struct PyOpProgress : public OpProgress, public PyCallbackObj { - PyObject *callbackInst; - void setCallbackInst(PyObject *o) { - callbackInst = o; - } + virtual void Update(); + virtual void Done(); + PyOpProgress() : OpProgress(), PyCallbackObj() {}; +}; - void updateStatus(pkgAcquire::ItemDesc & Itm, int status); - // apt interface +struct PyFetchProgress : public pkgAcquireStatus, public PyCallbackObj +{ + void UpdateStatus(pkgAcquire::ItemDesc & Itm, int status); + virtual bool MediaChange(string Media, string Drive); + + /* apt stuff */ virtual void IMSHit(pkgAcquire::ItemDesc &Itm); virtual void Fetch(pkgAcquire::ItemDesc &Itm); virtual void Done(pkgAcquire::ItemDesc &Itm); @@ -49,6 +54,8 @@ struct PyFetchProgress : public pkgAcquireStatus virtual void Stop(); bool Pulse(pkgAcquire * Owner); + PyFetchProgress() : PyCallbackObj() {}; + }; -- cgit v1.2.3