You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2012/03/20 21:17:19 UTC

svn commit: r1303129 - in /qpid/proton/proton-c: Makefile include/proton/engine.h src/ src/driver.c src/engine/engine.c src/proton.i

Author: rhs
Date: Tue Mar 20 20:17:18 2012
New Revision: 1303129

URL: http://svn.apache.org/viewvc?rev=1303129&view=rev
Log:
added python swig module; open the transport

Added:
    qpid/proton/proton-c/src/proton.i
Modified:
    qpid/proton/proton-c/Makefile
    qpid/proton/proton-c/include/proton/engine.h
    qpid/proton/proton-c/src/   (props changed)
    qpid/proton/proton-c/src/driver.c
    qpid/proton/proton-c/src/engine/engine.c

Modified: qpid/proton/proton-c/Makefile
URL: http://svn.apache.org/viewvc/qpid/proton/proton-c/Makefile?rev=1303129&r1=1303128&r2=1303129&view=diff
==============================================================================
--- qpid/proton/proton-c/Makefile (original)
+++ qpid/proton/proton-c/Makefile Tue Mar 20 20:17:18 2012
@@ -31,7 +31,10 @@ HDRS := ${UTIL_HDR} ${VALUE_HDR} \
 PROGRAMS := src/proton
 LIBRARY := src/libqpidproton.so
 
-all: ${PROGRAMS} ${LIBRARY}
+MODULE := src/proton.py
+SWIG_INT := src/proton.i
+
+all: ${PROGRAMS} ${LIBRARY} ${MODULE}
 
 # pull in dependency info for *existing* .o files
 -include ${DEPS}
@@ -41,6 +44,11 @@ ${PROGRAMS}: ${OBJS}
 ${LIBRARY}: ${OBJS}
 	$(CC) $(CCFLAGS) -shared -o $@ $^
 
+${MODULE}: ${SWIG_INT} ${HDRS} ${LIBRARY}
+	swig -python -Iinclude ${SWIG_INT}
+	$(CC) $(CCFLAGS) -fPIC -Iinclude -I/usr/include/python2.7 -Lsrc \
+		-lqpidproton -shared -o src/_proton.so src/proton_wrap.c
+
 ${OBJS}: ${HDRS}
 ${OBJS}: %.o: %.c
 	gcc -c -MMD -MP $(CFLAGS) $*.c -o $*.o
@@ -52,5 +60,6 @@ ${OBJS}: %.o: %.c
 	PYTHONPATH=${PYTHONPATH} ${PYTHON} $< > $@
 
 clean:
-	rm -f ${PROGRAMS} ${LIBRARY} ${OBJS} ${DEPS} src/protocol.c \
-	src/protocol.h src/codec/encodings.h src/*.pyc
+	rm -f ${PROGRAMS} ${LIBRARY} ${MODULE} ${OBJS} ${DEPS} src/protocol.c \
+	src/protocol.h src/codec/encodings.h src/*.pyc \
+	src/proton_wrap.c src/_proton.so

Modified: qpid/proton/proton-c/include/proton/engine.h
URL: http://svn.apache.org/viewvc/qpid/proton/proton-c/include/proton/engine.h?rev=1303129&r1=1303128&r2=1303129&view=diff
==============================================================================
--- qpid/proton/proton-c/include/proton/engine.h (original)
+++ qpid/proton/proton-c/include/proton/engine.h Tue Mar 20 20:17:18 2012
@@ -68,7 +68,6 @@ pn_delivery_t *pn_work_next(pn_delivery_
 pn_session_t *pn_session(pn_connection_t *connection);
 pn_transport_t *pn_transport(pn_connection_t *connection);
 
-void pn_endpoint_mask(pn_connection_t *connection, pn_endpoint_state_t local, pn_endpoint_state_t remote);
 pn_endpoint_t *pn_endpoint_head(pn_connection_t *connection,
                                 pn_endpoint_state_t local,
                                 pn_endpoint_state_t remote);
@@ -102,9 +101,9 @@ pn_delivery_t *pn_unsettled_head(pn_link
 pn_delivery_t *pn_unsettled_next(pn_delivery_t *delivery);
 
 // sender
-void pn_offer(pn_sender_t *sender, int credits);
+//void pn_offer(pn_sender_t *sender, int credits);
 ssize_t pn_send(pn_sender_t *sender, const char *bytes, size_t n);
-void pn_abort(pn_sender_t *sender);
+//void pn_abort(pn_sender_t *sender);
 
 // receiver
 #define PN_EOM (-1)

Propchange: qpid/proton/proton-c/src/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Mar 20 20:17:18 2012
@@ -1,3 +1,5 @@
 proton
 protocol.h
 *.d
+proton.py
+proton_wrap.c

Modified: qpid/proton/proton-c/src/driver.c
URL: http://svn.apache.org/viewvc/qpid/proton/proton-c/src/driver.c?rev=1303129&r1=1303128&r2=1303129&view=diff
==============================================================================
--- qpid/proton/proton-c/src/driver.c (original)
+++ qpid/proton/proton-c/src/driver.c Tue Mar 20 20:17:18 2012
@@ -322,6 +322,7 @@ static ssize_t pn_selectable_write_amqp_
   fprintf(stderr, "    -> AMQP 1.0\n");
   memmove(pn_selectable_output(sel), "AMQP\x00\x01\x00\x00", 8);
   sel->process_output = pn_selectable_write_amqp;
+  pn_open((pn_endpoint_t *) sel->transport);
   return 8;
 }
 

Modified: qpid/proton/proton-c/src/engine/engine.c
URL: http://svn.apache.org/viewvc/qpid/proton/proton-c/src/engine/engine.c?rev=1303129&r1=1303128&r2=1303129&view=diff
==============================================================================
--- qpid/proton/proton-c/src/engine/engine.c (original)
+++ qpid/proton/proton-c/src/engine/engine.c Tue Mar 20 20:17:18 2012
@@ -644,6 +644,8 @@ void pn_map_channel(pn_transport_t *tran
 
 pn_transport_t *pn_transport(pn_connection_t *conn)
 {
+  if (!conn) return NULL;
+
   if (conn->transport) {
     return NULL;
   } else {
@@ -774,6 +776,16 @@ pn_delivery_t *pn_delivery(pn_link_t *li
   return delivery;
 }
 
+pn_delivery_t *pn_unsettled_head(pn_link_t *link)
+{
+  return link->head;
+}
+
+pn_delivery_t *pn_unsettled_next(pn_delivery_t *delivery)
+{
+  return delivery->link_next;
+}
+
 bool pn_is_current(pn_delivery_t *delivery)
 {
   pn_link_t *link = delivery->link;
@@ -1093,6 +1105,10 @@ void pn_do_close(pn_dispatcher_t *disp)
 
 ssize_t pn_input(pn_transport_t *transport, char *bytes, size_t available)
 {
+  if (transport->endpoint.local_state == UNINIT) {
+    return 0;
+  }
+
   if (transport->endpoint.local_state == CLOSED) {
     return PN_EOS;
   }
@@ -1414,7 +1430,9 @@ void pn_process(pn_transport_t *transpor
 
 ssize_t pn_output(pn_transport_t *transport, char *bytes, size_t size)
 {
-  pn_process(transport);
+  if (transport->endpoint.local_state != UNINIT) {
+    pn_process(transport);
+  }
 
   if (!transport->disp->available && transport->endpoint.local_state == CLOSED) {
     return PN_EOS;

Added: qpid/proton/proton-c/src/proton.i
URL: http://svn.apache.org/viewvc/qpid/proton/proton-c/src/proton.i?rev=1303129&view=auto
==============================================================================
--- qpid/proton/proton-c/src/proton.i (added)
+++ qpid/proton/proton-c/src/proton.i Tue Mar 20 20:17:18 2012
@@ -0,0 +1,8 @@
+%module proton
+%{
+/* Includes the header in the wrapper code */
+#include <proton/engine.h>
+%}
+
+/* Parse the header file to generate wrappers */
+%include "proton/engine.h"



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org