Revision: 16473 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16473 Author: campbellbarton Date: 2008-09-11 16:58:13 +0200 (Thu, 11 Sep 2008)
Log Message: ----------- BGE message python api could return a CList type or None which makes exception checks annoying. just return an empty CList rather then None. Modified Paths: -------------- trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h Modified: trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp =================================================================== --- trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp 2008-09-11 13:00:54 UTC (rev 16472) +++ trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp 2008-09-11 14:58:13 UTC (rev 16473) @@ -196,19 +196,19 @@ PyMethodDef KX_NetworkMessageSensor::Methods[] = { {"setSubjectFilterText", (PyCFunction) - KX_NetworkMessageSensor::sPySetSubjectFilterText, METH_VARARGS, + KX_NetworkMessageSensor::sPySetSubjectFilterText, METH_O, SetSubjectFilterText_doc}, {"getFrameMessageCount", (PyCFunction) - KX_NetworkMessageSensor::sPyGetFrameMessageCount, METH_VARARGS, + KX_NetworkMessageSensor::sPyGetFrameMessageCount, METH_NOARGS, GetFrameMessageCount_doc}, {"getBodies", (PyCFunction) - KX_NetworkMessageSensor::sPyGetBodies, METH_VARARGS, + KX_NetworkMessageSensor::sPyGetBodies, METH_NOARGS, GetBodies_doc}, {"getSubject", (PyCFunction) - KX_NetworkMessageSensor::sPyGetSubject, METH_VARARGS, + KX_NetworkMessageSensor::sPyGetSubject, METH_NOARGS, GetSubject_doc}, {"getSubjects", (PyCFunction) - KX_NetworkMessageSensor::sPyGetSubjects, METH_VARARGS, + KX_NetworkMessageSensor::sPyGetSubjects, METH_NOARGS, GetSubjects_doc}, {NULL,NULL} //Sentinel }; @@ -222,22 +222,16 @@ "\tsetSubjectFilterText(value)\n" "\tChange the message subject text that this sensor is listening to.\n"; -PyObject* KX_NetworkMessageSensor::PySetSubjectFilterText( - PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_NetworkMessageSensor::PySetSubjectFilterText( PyObject* self, PyObject* value) { - char* Subject; - - if (PyArg_ParseTuple(args, "s", &Subject)) - { - m_subject = Subject; - } - else { + char* Subject = PyString_AsString(value); + if (Subject==NULL) { + PyErr_SetString(PyExc_TypeError, "expected a string message"); return NULL; } - - Py_Return; + + m_subject = Subject; + Py_RETURN_NONE; } // 2. Get the number of messages received since the last frame @@ -245,10 +239,7 @@ "\tgetFrameMessageCount()\n" "\tGet the number of messages received since the last frame.\n"; -PyObject* KX_NetworkMessageSensor::PyGetFrameMessageCount( - PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_NetworkMessageSensor::PyGetFrameMessageCount( PyObject* ) { return PyInt_FromLong(long(m_frame_message_count)); } @@ -258,16 +249,13 @@ "\tgetBodies()\n" "\tGet the list of message bodies.\n"; -PyObject* KX_NetworkMessageSensor::PyGetBodies( - PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_NetworkMessageSensor::PyGetBodies( PyObject* ) { if (m_BodyList) { return ((PyObject*) m_BodyList->AddRef()); + } else { + return ((PyObject*) new CListValue()); } - - Py_Return; } // 4. Get the message subject: field of the message sensor @@ -275,16 +263,9 @@ "\tgetSubject()\n" "\tGet the subject: field of the message sensor.\n"; -PyObject* KX_NetworkMessageSensor::PyGetSubject( - PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_NetworkMessageSensor::PyGetSubject( PyObject* ) { - if (m_subject) { - return PyString_FromString(m_subject); - } - - Py_Return; + return PyString_FromString(m_subject ? m_subject : ""); } // 5. Get the message subjects @@ -292,14 +273,11 @@ "\tgetSubjects()\n" "\tGet list of message subjects.\n"; -PyObject* KX_NetworkMessageSensor::PyGetSubjects( - PyObject* self, - PyObject* args, - PyObject* kwds) +PyObject* KX_NetworkMessageSensor::PyGetSubjects( PyObject* ) { if (m_SubjectList) { - return ((PyObject*) m_SubjectList->AddRef()); - } - - Py_Return; + return ((PyObject*) m_SubjectList->AddRef()); + } else { + return ((PyObject*) new CListValue()); + } } Modified: trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h =================================================================== --- trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h 2008-09-11 13:00:54 UTC (rev 16472) +++ trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h 2008-09-11 14:58:13 UTC (rev 16473) @@ -74,11 +74,11 @@ virtual PyObject* _getattr(const STR_String& attr); - KX_PYMETHOD_DOC(KX_NetworkMessageSensor, SetSubjectFilterText); - KX_PYMETHOD_DOC(KX_NetworkMessageSensor, GetFrameMessageCount); - KX_PYMETHOD_DOC(KX_NetworkMessageSensor, GetBodies); - KX_PYMETHOD_DOC(KX_NetworkMessageSensor, GetSubject); - KX_PYMETHOD_DOC(KX_NetworkMessageSensor, GetSubjects); + KX_PYMETHOD_DOC_O(KX_NetworkMessageSensor, SetSubjectFilterText); + KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetFrameMessageCount); + KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetBodies); + KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetSubject); + KX_PYMETHOD_DOC_NOARGS(KX_NetworkMessageSensor, GetSubjects); }; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs