// Description /*{{{*/ // $Id: cdrom.cc,v 1.1 2003/06/03 03:03:23 mvo Exp $ /* ###################################################################### Cdrom - Wrapper for the apt-cdrom support ##################################################################### */ #include "generic.h" #include "apt_pkgmodule.h" #include "progress.h" #include struct PkgCdromStruct { pkgCdrom cdrom; }; static PyObject *PkgCdromAdd(PyObject *Self,PyObject *Args) { PkgCdromStruct &Struct = GetCpp(Self); PyObject *pyCdromProgressInst = 0; if (PyArg_ParseTuple(Args, "O", &pyCdromProgressInst) == 0) { return 0; } PyCdromProgress progress; progress.setCallbackInst(pyCdromProgressInst); bool res = Struct.cdrom.Add(&progress); return HandleErrors(Py_BuildValue("b", res)); } static PyObject *PkgCdromIdent(PyObject *Self,PyObject *Args) { PkgCdromStruct &Struct = GetCpp(Self); PyObject *pyCdromProgressInst = 0; if (PyArg_ParseTuple(Args, "O", &pyCdromProgressInst) == 0) { return 0; } PyCdromProgress progress; progress.setCallbackInst(pyCdromProgressInst); string ident; bool res = Struct.cdrom.Ident(ident, &progress); PyObject *result = Py_BuildValue("(bs)", res, ident.c_str()); return HandleErrors(result); } static PyMethodDef PkgCdromMethods[] = { {"Add",PkgCdromAdd,METH_VARARGS,"Add a cdrom"}, {"Ident",PkgCdromIdent,METH_VARARGS,"Ident a cdrom"}, {} }; static PyObject *CdromAttr(PyObject *Self,char *Name) { PkgCdromStruct &Struct = GetCpp(Self); return Py_FindMethod(PkgCdromMethods,Self,Name); } PyTypeObject PkgCdromType = { PyObject_HEAD_INIT(&PyType_Type) 0, // ob_size "Cdrom", // tp_name sizeof(CppOwnedPyObject), // tp_basicsize 0, // tp_itemsize // Methods CppOwnedDealloc, // tp_dealloc 0, // tp_print CdromAttr, // tp_getattr 0, // tp_setattr 0, // tp_compare 0, // tp_repr 0, // tp_as_number 0, // tp_as_sequence 0, // tp_as_mapping 0, // tp_hash }; PyObject *GetCdrom(PyObject *Self,PyObject *Args) { pkgCdrom *cdrom = new pkgCdrom(); CppOwnedPyObject *CdromObj = CppOwnedPyObject_NEW(0,&PkgCdromType, *cdrom); return CdromObj; } /*}}}*/