From d06566c40340c80db43e47b171ceda579291ef66 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 9 Mar 2005 16:59:16 +0000 Subject: * OpProgress interface added for DepCache --- python/depcache.cc | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'python/depcache.cc') diff --git a/python/depcache.cc b/python/depcache.cc index ac779063..4bd1f390 100644 --- a/python/depcache.cc +++ b/python/depcache.cc @@ -20,7 +20,7 @@ #include #include - +#include "progress.h" // DepCache Class /*{{{*/ // --------------------------------------------------------------------- @@ -49,7 +49,17 @@ static PyObject *PkgDepCacheInit(PyObject *Self,PyObject *Args) { PkgDepCacheStruct &Struct = GetCpp(Self); - Struct.depcache->Init(0); + PyObject *pyCallbackInst = 0; + if (PyArg_ParseTuple(Args, "|O", &pyCallbackInst) == 0) + return 0; + + if(pyCallbackInst != 0) { + PyOpProgress progress; + progress.setCallbackInst(pyCallbackInst); + Struct.depcache->Init(&progress); + } else { + Struct.depcache->Init(0); + } return HandleErrors(Py_None); } @@ -330,7 +340,8 @@ PyTypeObject PkgDepCacheType = PyObject *GetDepCache(PyObject *Self,PyObject *Args) { PyObject *Owner; - if (PyArg_ParseTuple(Args,"O!",&PkgCacheType,&Owner) == 0) + PyObject *pyCallbackInst = 0; + if (PyArg_ParseTuple(Args,"O!|O",&PkgCacheType,&Owner,&pyCallbackInst) == 0) return 0; PyObject *DepCachePyObj; @@ -340,8 +351,13 @@ PyObject *GetDepCache(PyObject *Self,PyObject *Args) HandleErrors(DepCachePyObj); PkgDepCacheStruct &Struct = GetCpp(DepCachePyObj); - // init without progress obj - Struct.depcache->Init(0); + if(pyCallbackInst != 0) { + PyOpProgress progress; + progress.setCallbackInst(pyCallbackInst); + Struct.depcache->Init(&progress); + } else { + Struct.depcache->Init(0); + } return DepCachePyObj; } -- cgit v1.2.3