| 33 |
33 |
|
| 34 |
34 |
#include "_pylibmcmodule.h" |
| 35 |
35 |
|
|
36 |
|
| 36 |
37 |
/* {{{ _pylibmc.client implementation */ |
| 37 |
38 |
/* {{{ Type methods */ |
| 38 |
39 |
static PylibMC_Client *PylibMC_ClientType_new(PyTypeObject *type, |
| … |
| 131 |
132 |
case PYLIBMC_FLAG_PICKLE: |
| 132 |
133 |
retval = _PylibMC_Unpickle(value, size); |
| 133 |
134 |
break; |
|
135 |
case PYLIBMC_FLAG_BOOL_TRUE: |
|
136 |
retval = Py_True; |
|
137 |
break; |
|
138 |
case PYLIBMC_FLAG_BOOL_FALSE: |
|
139 |
retval = Py_False; |
|
140 |
break; |
| 134 |
141 |
case PYLIBMC_FLAG_INTEGER: |
| 135 |
142 |
case PYLIBMC_FLAG_LONG: |
| 136 |
143 |
retval = PyInt_FromString(value, NULL, 10); |
| 137 |
144 |
break; |
| 138 |
145 |
case PYLIBMC_FLAG_NONE: |
| 139 |
|
retval = PyString_FromStringAndSize(value, (Py_ssize_t)size); |
|
146 |
retval = PyString_FromStringAndSize(value, (size_t)size); |
| 140 |
147 |
break; |
| 141 |
148 |
default: |
| 142 |
149 |
PyErr_Format(PylibMCExc_MemcachedError, |
| … |
| 199 |
206 |
} else if (PyString_Check(val)) { |
| 200 |
207 |
store_val = val; |
| 201 |
208 |
Py_INCREF(store_val); |
|
209 |
} else if (val == Py_True) { |
|
210 |
store_flags |= PYLIBMC_FLAG_BOOL_TRUE; |
|
211 |
store_val = PyObject_Str(val); |
|
212 |
} else if (val == Py_False) { |
|
213 |
store_flags |= PYLIBMC_FLAG_BOOL_FALSE; |
|
214 |
store_val = PyObject_Str(val); |
| 202 |
215 |
} else if (PyInt_Check(val)) { |
| 203 |
216 |
store_flags |= PYLIBMC_FLAG_INTEGER; |
| 204 |
217 |
store_val = PyObject_Str(val); |
| … |
| 345 |
358 |
char **keys, *prefix = NULL; |
| 346 |
359 |
unsigned int prefix_len = 0; |
| 347 |
360 |
size_t *key_lens; |
| 348 |
|
Py_ssize_t nkeys; |
|
361 |
size_t nkeys; |
| 349 |
362 |
memcached_return rc; |
| 350 |
363 |
|
| 351 |
364 |
char curr_key[MEMCACHED_MAX_KEY]; |
| … |
| 712 |
725 |
if (error == MEMCACHED_ERRNO) { |
| 713 |
726 |
PyErr_Format(PylibMCExc_MemcachedError, |
| 714 |
727 |
"system error %d from %s: %s", errno, what, strerror(errno)); |
|
728 |
/* The key exists, but it has no value */ |
|
729 |
} else if(error == 0) { |
|
730 |
return PyString_FromStringAndSize("", 0); |
| 715 |
731 |
} else { |
| 716 |
732 |
PyErr_Format(PylibMCExc_MemcachedError, "error %d from %s: %s", |
| 717 |
733 |
error, what, memcached_strerror(self->mc, error)); |