]>
git.ipfire.org Git - people/ms/pakfire.git/blob - src/request.c
7 #include <solv/solver.h>
9 PyTypeObject RequestType
= {
10 PyObject_HEAD_INIT(NULL
)
11 tp_name
: "_pakfire.Request",
12 tp_basicsize
: sizeof(RequestObject
),
13 tp_flags
: Py_TPFLAGS_DEFAULT
| Py_TPFLAGS_BASETYPE
,
15 tp_dealloc
: (destructor
) Request_dealloc
,
16 tp_doc
: "Sat Request objects",
19 PyObject
* Request_new(PyTypeObject
*type
, PyObject
*args
, PyObject
*kwds
) {
23 if (!PyArg_ParseTuple(args
, "O", &pool
)) {
24 /* XXX raise exception */
27 self
= (RequestObject
*)type
->tp_alloc(type
, 0);
29 self
->_pool
= pool
->_pool
;
30 if (self
->_pool
== NULL
) {
35 queue_init(&self
->_queue
);
38 return (PyObject
*)self
;
41 PyObject
*Request_dealloc(RequestObject
*self
) {
42 self
->ob_type
->tp_free((PyObject
*)self
);
47 void _Request_solvable(RequestObject
*self
, Id what
, Id solvable
) {
48 queue_push(&self
->_queue
, what
|SOLVER_SOLVABLE
);
49 queue_push(&self
->_queue
, solvable
);
52 void _Request_relation(RequestObject
*self
, Id what
, Id relation
) {
53 queue_push(&self
->_queue
, what
|SOLVER_SOLVABLE_PROVIDES
);
54 queue_push(&self
->_queue
, relation
);
57 void _Request_name(RequestObject
*self
, Id what
, Id provides
) {
58 queue_push(&self
->_queue
, what
|SOLVER_SOLVABLE_NAME
);
59 queue_push(&self
->_queue
, provides
);
62 PyObject
*Request_install_solvable(RequestObject
*self
, PyObject
*args
) {
65 if (!PyArg_ParseTuple(args
, "O", &solv
)) {
66 /* XXX raise exception */
69 _Request_solvable(self
, SOLVER_INSTALL
, solv
->_id
);
74 PyObject
*Request_install_relation(RequestObject
*self
, PyObject
*args
) {
77 if (!PyArg_ParseTuple(args
, "O", &rel
)) {
78 /* XXX raise exception */
81 _Request_relation(self
, SOLVER_INSTALL
, rel
->_id
);
86 PyObject
*Request_install_name(RequestObject
*self
, PyObject
*args
) {
89 if (!PyArg_ParseTuple(args
, "s", &name
)) {
90 /* XXX raise exception */
93 Id _name
= pool_str2id(self
->_pool
, name
, 1);
94 _Request_name(self
, SOLVER_INSTALL
, _name
);
99 PyObject
*Request_remove_solvable(RequestObject
*self
, PyObject
*args
) {
100 SolvableObject
*solv
;
102 if (!PyArg_ParseTuple(args
, "O", &solv
)) {
103 /* XXX raise exception */
106 _Request_solvable(self
, SOLVER_ERASE
, solv
->_id
);
111 PyObject
*Request_remove_relation(RequestObject
*self
, PyObject
*args
) {
114 if (!PyArg_ParseTuple(args
, "O", &rel
)) {
115 /* XXX raise exception */
118 _Request_relation(self
, SOLVER_ERASE
, rel
->_id
);
123 PyObject
*Request_remove_name(RequestObject
*self
, PyObject
*args
) {
126 if (!PyArg_ParseTuple(args
, "s", &name
)) {
127 /* XXX raise exception */
130 Id _name
= pool_str2id(self
->_pool
, name
, 1);
131 _Request_name(self
, SOLVER_ERASE
, _name
);
136 PyObject
*Request_update_solvable(RequestObject
*self
, PyObject
*args
) {
137 SolvableObject
*solv
;
139 if (!PyArg_ParseTuple(args
, "O", &solv
)) {
140 /* XXX raise exception */
143 _Request_solvable(self
, SOLVER_UPDATE
, solv
->_id
);
148 PyObject
*Request_update_relation(RequestObject
*self
, PyObject
*args
) {
151 if (!PyArg_ParseTuple(args
, "O", &rel
)) {
152 /* XXX raise exception */
155 _Request_relation(self
, SOLVER_UPDATE
, rel
->_id
);
160 PyObject
*Request_update_name(RequestObject
*self
, PyObject
*args
) {
163 if (!PyArg_ParseTuple(args
, "s", &name
)) {
164 /* XXX raise exception */
167 Id _name
= pool_str2id(self
->_pool
, name
, 1);
168 _Request_name(self
, SOLVER_UPDATE
, _name
);
173 PyObject
*Request_lock_solvable(RequestObject
*self
, PyObject
*args
) {
174 SolvableObject
*solv
;
176 if (!PyArg_ParseTuple(args
, "O", &solv
)) {
177 /* XXX raise exception */
180 _Request_solvable(self
, SOLVER_LOCK
, solv
->_id
);
185 PyObject
*Request_lock_relation(RequestObject
*self
, PyObject
*args
) {
188 if (!PyArg_ParseTuple(args
, "O", &rel
)) {
189 /* XXX raise exception */
192 _Request_relation(self
, SOLVER_LOCK
, rel
->_id
);
197 PyObject
*Request_lock_name(RequestObject
*self
, PyObject
*args
) {
200 if (!PyArg_ParseTuple(args
, "s", &name
)) {
201 /* XXX raise exception */
204 Id _name
= pool_str2id(self
->_pool
, name
, 1);
205 _Request_name(self
, SOLVER_LOCK
, _name
);
210 PyObject
*Request_noobsoletes_solvable(RequestObject
*self
, PyObject
*args
) {
211 SolvableObject
*solv
;
213 if (!PyArg_ParseTuple(args
, "O", &solv
)) {
214 /* XXX raise exception */
217 _Request_solvable(self
, SOLVER_NOOBSOLETES
, solv
->_id
);
222 PyObject
*Request_noobsoletes_relation(RequestObject
*self
, PyObject
*args
) {
225 if (!PyArg_ParseTuple(args
, "O", &rel
)) {
226 /* XXX raise exception */
229 _Request_relation(self
, SOLVER_NOOBSOLETES
, rel
->_id
);
234 PyObject
*Request_noobsoletes_name(RequestObject
*self
, PyObject
*args
) {
237 if (!PyArg_ParseTuple(args
, "s", &name
)) {
238 /* XXX raise exception */
241 Id _name
= pool_str2id(self
->_pool
, name
, 1);
242 _Request_name(self
, SOLVER_NOOBSOLETES
, _name
);