forked from excid3/python-apt
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcdrom.cc
More file actions
110 lines (77 loc) · 2.7 KB
/
cdrom.cc
File metadata and controls
110 lines (77 loc) · 2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// 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 <apt-pkg/cdrom.h>
struct PkgCdromStruct
{
pkgCdrom cdrom;
};
static PyObject *PkgCdromAdd(PyObject *Self,PyObject *Args)
{
PkgCdromStruct &Struct = GetCpp<PkgCdromStruct>(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<PkgCdromStruct>(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<PkgCdromStruct>(Self);
return Py_FindMethod(PkgCdromMethods,Self,Name);
}
PyTypeObject PkgCdromType =
{
PyObject_HEAD_INIT(&PyType_Type)
0, // ob_size
"Cdrom", // tp_name
sizeof(CppOwnedPyObject<PkgCdromStruct>), // tp_basicsize
0, // tp_itemsize
// Methods
CppOwnedDealloc<PkgCdromStruct>, // 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<pkgCdrom> *CdromObj =
CppOwnedPyObject_NEW<pkgCdrom>(0,&PkgCdromType, *cdrom);
return CdromObj;
}
/*}}}*/