You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2013/07/09 04:22:34 UTC
svn commit: r1501046 - in /qpid/trunk/qpid/extras/dispatch:
include/qpid/dispatch/router.h src/python_embedded.c src/router_node.c
Author: tross
Date: Tue Jul 9 02:22:33 2013
New Revision: 1501046
URL: http://svn.apache.org/r1501046
Log:
QPID-4967 - Added the message transmit linkage from python.
Modified:
qpid/trunk/qpid/extras/dispatch/include/qpid/dispatch/router.h
qpid/trunk/qpid/extras/dispatch/src/python_embedded.c
qpid/trunk/qpid/extras/dispatch/src/router_node.c
Modified: qpid/trunk/qpid/extras/dispatch/include/qpid/dispatch/router.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/extras/dispatch/include/qpid/dispatch/router.h?rev=1501046&r1=1501045&r2=1501046&view=diff
==============================================================================
--- qpid/trunk/qpid/extras/dispatch/include/qpid/dispatch/router.h (original)
+++ qpid/trunk/qpid/extras/dispatch/include/qpid/dispatch/router.h Tue Jul 9 02:22:33 2013
@@ -43,5 +43,9 @@ void dx_router_send(dx_dispatch_t
dx_field_iterator_t *address,
dx_message_t *msg);
+void dx_router_send2(dx_dispatch_t *dx,
+ const char *address,
+ dx_message_t *msg);
+
#endif
Modified: qpid/trunk/qpid/extras/dispatch/src/python_embedded.c
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/extras/dispatch/src/python_embedded.c?rev=1501046&r1=1501045&r2=1501046&view=diff
==============================================================================
--- qpid/trunk/qpid/extras/dispatch/src/python_embedded.c (original)
+++ qpid/trunk/qpid/extras/dispatch/src/python_embedded.c Tue Jul 9 02:22:33 2013
@@ -432,14 +432,36 @@ static void IoAdapter_dealloc(IoAdapter*
static PyObject* dx_python_send(PyObject *self, PyObject *args)
{
+ IoAdapter *ioa = (IoAdapter*) self;
const char *address;
PyObject *app_properties;
PyObject *body;
if (!PyArg_ParseTuple(args, "sOO", &address, &app_properties, &body))
return 0;
- // TODO - Compose and send a message
-
+ dx_composed_field_t *field = dx_compose(DX_PERFORMATIVE_HEADER, 0);
+ dx_compose_start_list(field);
+ dx_compose_insert_bool(field, 0); // durable
+ dx_compose_end_list(field);
+
+ field = dx_compose(DX_PERFORMATIVE_PROPERTIES, field);
+ dx_compose_start_list(field);
+ dx_compose_insert_null(field); // message-id
+ dx_compose_insert_null(field); // user-id
+ dx_compose_insert_string(field, address); // to
+ dx_compose_end_list(field);
+
+ field = dx_compose(DX_PERFORMATIVE_APPLICATION_PROPERTIES, field);
+ dx_py_to_composed(app_properties, field);
+
+ field = dx_compose(DX_PERFORMATIVE_BODY_AMQP_VALUE, field);
+ dx_py_to_composed(body, field);
+
+ dx_message_t *msg = dx_allocate_message();
+ dx_message_compose_2(msg, field);
+ dx_router_send2(ioa->dx, address, msg);
+ dx_free_message(msg);
+ dx_compose_free(field);
Py_INCREF(Py_None);
return Py_None;
Modified: qpid/trunk/qpid/extras/dispatch/src/router_node.c
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/extras/dispatch/src/router_node.c?rev=1501046&r1=1501045&r2=1501046&view=diff
==============================================================================
--- qpid/trunk/qpid/extras/dispatch/src/router_node.c (original)
+++ qpid/trunk/qpid/extras/dispatch/src/router_node.c Tue Jul 9 02:22:33 2013
@@ -613,6 +613,16 @@ void dx_router_send(dx_dispatch_t
}
+void dx_router_send2(dx_dispatch_t *dx,
+ const char *address,
+ dx_message_t *msg)
+{
+ dx_field_iterator_t *iter = dx_field_iterator_string(address, ITER_VIEW_ADDRESS_HASH);
+ dx_router_send(dx, iter, msg);
+ dx_field_iterator_free(iter);
+}
+
+
//===============================================================================
// Python Router Adapter
//===============================================================================
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org