// useable format options are
// R = Service Reference (as swig object .. this is very slow)
// S = Service Reference (as python string object .. same as ref.toString())
+// C = Service Reference (as python string object .. same as ref.toCompareString())
// N = Service Name (as python string object)
// when exactly one return value per service is selected in the format string,
// then each value is directly a list entry
// unknown format string chars are returned as python None values !
PyObject *eServiceFS::getContent(const char* format, bool sorted)
{
- PyObject *ret=0;
+ ePyObject ret;
std::list<eServiceReference> tmplist;
int retcount=1;
for (int cnt=0; cnt < services; ++cnt)
{
eServiceReference &ref=*it++;
- PyObject *tuple = retcount > 1 ? PyTuple_New(retcount) : 0;
+ ePyObject tuple = retcount > 1 ? PyTuple_New(retcount) : ePyObject();
for (int i=0; i < retcount; ++i)
{
- PyObject *tmp=0;
+ ePyObject tmp;
switch(format[i])
{
case 'R': // service reference (swig)object
- tmp = New_eServiceReference(ref);
+ tmp = NEW_eServiceReference(ref);
+ break;
+ case 'C': // service reference compare string
+ tmp = PyString_FromString(ref.toCompareString().c_str());
break;
case 'S': // service reference string
tmp = PyString_FromString(ref.toString().c_str());
PyList_SET_ITEM(ret, cnt, tuple);
}
}
- return ret ? ret : PyList_New(0);
+ return ret ? (PyObject*)ret : (PyObject*)PyList_New(0);
}
RESULT eServiceFS::getNext(eServiceReference &ptr)