diff options
| author | Julian Andres Klode <jak@debian.org> | 2010-01-23 19:34:53 +0100 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2010-01-23 19:34:53 +0100 |
| commit | 70609e1f497832502cd25e874190d13c8ff628f0 (patch) | |
| tree | 9a6fba3a01c4434756e0bc74b9cf1d8d76449786 /python | |
| parent | 89752fb6d465c78026befcc5a61e8af655587ad7 (diff) | |
| download | python-apt-70609e1f497832502cd25e874190d13c8ff628f0.tar.gz | |
python: Export a PyAcquire_FromCpp which sets up a correct PyAcquireObject.
Diffstat (limited to 'python')
| -rw-r--r-- | python/acquire.cc | 11 | ||||
| -rw-r--r-- | python/apt_pkgmodule.cc | 1 | ||||
| -rw-r--r-- | python/apt_pkgmodule.h | 2 | ||||
| -rw-r--r-- | python/python-apt.h | 5 |
4 files changed, 18 insertions, 1 deletions
diff --git a/python/acquire.cc b/python/acquire.cc index ef8b10b6..789f994e 100644 --- a/python/acquire.cc +++ b/python/acquire.cc @@ -379,6 +379,17 @@ static PyObject *PkgAcquireNew(PyTypeObject *type,PyObject *Args,PyObject *kwds) return FetcherObj; } +/** + * Create a new apt_pkg.Acquire Python object from the pkgAcquire object. + */ +PyObject *PyAcquire_FromCpp(pkgAcquire *fetcher, bool Delete) { + PyAcquireObject *FetcherObj = (PyAcquireObject *)CppPyObject_NEW<pkgAcquire*>(&PyAcquire_Type, fetcher); + new (&FetcherObj->items) item_map(); + new (&FetcherObj->workers) worker_map(); + FetcherObj->NoDelete = (!Delete); + return FetcherObj; +} + static char *doc_PkgAcquire = "Acquire(progress: apt_pkg.AcquireProgress) -> Acquire() object.\n\n" "Create a new acquire object. The parameter *progress* can be used to\n" diff --git a/python/apt_pkgmodule.cc b/python/apt_pkgmodule.cc index df443c10..64db74d2 100644 --- a/python/apt_pkgmodule.cc +++ b/python/apt_pkgmodule.cc @@ -526,6 +526,7 @@ static PyMethodDef methods[] = static struct _PyAptPkgAPIStruct API = { &PyAcquire_Type, // acquire_type + &PyAcquire_FromCpp, // acquire_fromcpp &PyAcquireFile_Type, // acquirefile_type &PyAcquireItem_Type, // acquireitem_type &PyAcquireItemDesc_Type, // acquireitemdesc_type diff --git a/python/apt_pkgmodule.h b/python/apt_pkgmodule.h index bc2f747b..5a5a6c6f 100644 --- a/python/apt_pkgmodule.h +++ b/python/apt_pkgmodule.h @@ -121,6 +121,8 @@ extern PyTypeObject PyAcquireItemDesc_Type; extern PyTypeObject PyAcquireWorker_Type; extern PyTypeObject PySystemLock_Type; extern PyTypeObject PyFileLock_Type; + +PyObject *PyAcquire_FromCpp(pkgAcquire *fetcher, bool Delete); #include "python-apt.h" #endif diff --git a/python/python-apt.h b/python/python-apt.h index 3e413dff..f8c21adc 100644 --- a/python/python-apt.h +++ b/python/python-apt.h @@ -26,6 +26,7 @@ struct _PyAptPkgAPIStruct { PyTypeObject *acquire_type; + PyObject* (*acquire_fromcpp)(pkgAcquire *acquire, bool Delete); PyTypeObject *acquirefile_type; PyTypeObject *acquireitem_type; PyTypeObject *acquireitemdesc_type; @@ -237,7 +238,9 @@ inline CppOwnedPyObject<Cpp> *FromCppOwned(PyTypeObject *pytype, Cpp const &obj, return Obj; } -# define PyAcquire_FromCpp(...) FromCpp<pkgAcquire*>(&PyAcquire_Type, ##__VA_ARGS__) +# ifndef APT_PKGMODULE_H +# define PyAcquire_FromCpp _PyAptPkg_API->acquire_fromcpp +#endif # define PyAcquireFile_FromCpp(...) FromCppOwned<pkgAcqFile*>(&PyAcquireFile_Type, ##__VA_ARGS__) # define PyAcquireItem_FromCpp(...) FromCppOwned<pkgAcquire::Item*>(&PyAcquireItem_Type,##__VA_ARGS__) # define PyAcquireItemDesc_FromCpp(...) FromCppOwned<pkgAcquire::ItemDesc*>(&PyAcquireItemDesc_Type,##__VA_ARGS__) |
