You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ch...@apache.org on 2017/09/15 18:48:58 UTC

[5/7] qpid-dispatch git commit: DISPATCH-807: Remove delivery arg from delivery_handler interface

DISPATCH-807: Remove delivery arg from delivery_handler interface

Container delivery handler has a qd_link arg and from that the
pn_link and the current pn_delivery may be derived.


Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/1c639f10
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/1c639f10
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/1c639f10

Branch: refs/heads/DISPATCH-807-1
Commit: 1c639f101eb286ddde19ec7eeb6447c86a867de7
Parents: 41e363e
Author: Chuck Rolke <cr...@redhat.com>
Authored: Thu Sep 14 10:33:50 2017 -0400
Committer: Chuck Rolke <cr...@redhat.com>
Committed: Fri Sep 15 14:47:26 2017 -0400

----------------------------------------------------------------------
 include/qpid/dispatch/container.h | 7 ++++---
 src/container.c                   | 2 +-
 src/router_node.c                 | 6 +++++-
 3 files changed, 10 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/1c639f10/include/qpid/dispatch/container.h
----------------------------------------------------------------------
diff --git a/include/qpid/dispatch/container.h b/include/qpid/dispatch/container.h
index bcb079c..844c32d 100644
--- a/include/qpid/dispatch/container.h
+++ b/include/qpid/dispatch/container.h
@@ -70,7 +70,8 @@ typedef enum {
 typedef struct qd_node_t     qd_node_t;
 typedef struct qd_link_t     qd_link_t;
 
-typedef void (*qd_container_delivery_handler_t)    (void *node_context, qd_link_t *link, pn_delivery_t *delivery);
+typedef void (*qd_container_delivery_handler_t)    (void *node_context, qd_link_t *link);
+typedef void (*qd_container_disposition_handler_t) (void *node_context, qd_link_t *link, pn_delivery_t *pnd);
 typedef int  (*qd_container_link_handler_t)        (void *node_context, qd_link_t *link);
 typedef int  (*qd_container_link_detach_handler_t) (void *node_context, qd_link_t *link, qd_detach_type_t dt);
 typedef void (*qd_container_node_handler_t)        (void *type_context, qd_node_t *node);
@@ -88,11 +89,11 @@ typedef struct {
      * @{
      */
 
-    /** Invoked when a new received delivery is avaliable for processing. */
+    /** Invoked when a new or existing received delivery is avaliable for processing. */
     qd_container_delivery_handler_t rx_handler;
 
     /** Invoked when an existing delivery changes disposition or settlement state. */
-    qd_container_delivery_handler_t disp_handler;
+    qd_container_disposition_handler_t disp_handler;
 
     /** Invoked when an attach for a new incoming link is received. */
     qd_container_link_handler_t incoming_handler;

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/1c639f10/src/container.c
----------------------------------------------------------------------
diff --git a/src/container.c b/src/container.c
index 3c3bc49..a99ef35 100644
--- a/src/container.c
+++ b/src/container.c
@@ -172,7 +172,7 @@ static void do_receive(pn_delivery_t *pnd)
     if (link) {
         qd_node_t *node = link->node;
         if (node) {
-            node->ntype->rx_handler(node->context, link, pnd);
+            node->ntype->rx_handler(node->context, link);
             return;
         }
     }

http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/1c639f10/src/router_node.c
----------------------------------------------------------------------
diff --git a/src/router_node.c b/src/router_node.c
index 3ed4eac..6672751 100644
--- a/src/router_node.c
+++ b/src/router_node.c
@@ -191,10 +191,14 @@ static qd_iterator_t *router_annotate_message(qd_router_t   *router,
 /**
  * Inbound Delivery Handler
  */
-static void AMQP_rx_handler(void* context, qd_link_t *link, pn_delivery_t *pnd)
+static void AMQP_rx_handler(void* context, qd_link_t *link)
 {
     qd_router_t    *router       = (qd_router_t*) context;
     pn_link_t      *pn_link      = qd_link_pn(link);
+    assert(pn_link);
+    pn_delivery_t  *pnd          = pn_link_current(pn_link);
+    if (!pnd)
+        return;
     qdr_link_t     *rlink        = (qdr_link_t*) qd_link_get_context(link);
     qd_connection_t  *conn       = qd_link_connection(link);
     const qd_server_config_t *cf = qd_connection_config(conn);


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