Author: rhs
Date: Thu Jun 19 17:22:43 2014
New Revision: 1603955

URL: http://svn.apache.org/r1603955
Log:
made pn_collector_put take the context as an argument

Modified:
    qpid/proton/trunk/proton-c/include/proton/event.h
    qpid/proton/trunk/proton-c/src/engine/engine.c
    qpid/proton/trunk/proton-c/src/engine/event.c
    qpid/proton/trunk/proton-c/src/engine/event.h
    qpid/proton/trunk/proton-c/src/transport/transport.c

Modified: qpid/proton/trunk/proton-c/include/proton/event.h
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/event.h?rev=1603955&r1=1603954&r2=1603955&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/event.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/event.h Thu Jun 19 17:22:43 2014
@@ -220,6 +220,11 @@ PN_EXTERN pn_event_type_t pn_event_type(
 PN_EXTERN pn_event_category_t pn_event_category(pn_event_t *event);
 
 /**
+ * Get the context associated with an event.
+ */
+PN_EXTERN void *pn_event_context(pn_event_t *event);
+
+/**
  * Get the connection associated with an event.
  *
  * @param[in] event an event object

Modified: qpid/proton/trunk/proton-c/src/engine/engine.c
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/engine/engine.c?rev=1603955&r1=1603954&r2=1603955&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/engine/engine.c (original)
+++ qpid/proton/trunk/proton-c/src/engine/engine.c Thu Jun 19 17:22:43 2014
@@ -64,11 +64,8 @@ static void pn_endpoint_open(pn_endpoint
   // TODO: do we care about the current state?
   PN_SET_LOCAL(endpoint->state, PN_LOCAL_ACTIVE);
   pn_connection_t *conn = pn_ep_get_connection(endpoint);
-  pn_event_t *event = pn_collector_put(conn->collector,
-                                       endpoint_event_map[endpoint->type]);
-  if (event) {
-    pn_event_init(event, endpoint);
-  }
+  pn_collector_put(conn->collector, endpoint_event_map[endpoint->type],
+                   endpoint);
   pn_modified(conn, endpoint, true);
 }
 
@@ -77,11 +74,8 @@ static void pn_endpoint_close(pn_endpoin
   // TODO: do we care about the current state?
   PN_SET_LOCAL(endpoint->state, PN_LOCAL_CLOSED);
   pn_connection_t *conn = pn_ep_get_connection(endpoint);
-  pn_event_t *event = pn_collector_put(conn->collector,
-                                       endpoint_event_map[endpoint->type]);
-  if (event) {
-    pn_event_init(event, endpoint);
-  }
+  pn_collector_put(conn->collector, endpoint_event_map[endpoint->type],
+                   endpoint);
   pn_modified(conn, endpoint, true);
 }
 
@@ -343,11 +337,8 @@ static bool pni_post_final(pn_endpoint_t
   pn_connection_t *conn = pn_ep_get_connection(endpoint);
   if (!endpoint->posted_final) {
     endpoint->posted_final = true;
-    pn_event_t *event = pn_collector_put(conn->collector, type);
-    if (event) {
-      pn_event_init(event, endpoint);
-      return true;
-    }
+    pn_event_t *event = pn_collector_put(conn->collector, type, endpoint);
+    if (event) { return true; }
   }
 
   return false;
@@ -592,10 +583,8 @@ void pn_modified(pn_connection_t *connec
   }
 
   if (emit && connection->transport) {
-    pn_event_t *event = pn_collector_put(connection->collector, PN_TRANSPORT);
-    if (event) {
-      pn_event_init(event, connection->transport);
-    }
+    pn_collector_put(connection->collector, PN_TRANSPORT,
+                     connection->transport);
   }
 }
 

Modified: qpid/proton/trunk/proton-c/src/engine/event.c
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/engine/event.c?rev=1603955&r1=1603954&r2=1603955&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/engine/event.c (original)
+++ qpid/proton/trunk/proton-c/src/engine/event.c Thu Jun 19 17:22:43 2014
@@ -81,12 +81,14 @@ void pn_collector_free(pn_collector_t *c
 pn_event_t *pn_event(void);
 static void pn_event_initialize(void *obj);
 
-pn_event_t *pn_collector_put(pn_collector_t *collector, pn_event_type_t type)
+pn_event_t *pn_collector_put(pn_collector_t *collector, pn_event_type_t type, 
void *context)
 {
   if (!collector) {
     return NULL;
   }
 
+  assert(context);
+
   pn_event_t *event;
 
   if (collector->free_head) {
@@ -108,6 +110,8 @@ pn_event_t *pn_collector_put(pn_collecto
   }
 
   event->type = type;
+  event->context = context;
+  pn_incref(event->context);
 
   return event;
 }
@@ -177,13 +181,6 @@ pn_event_t *pn_event(void)
   return event;
 }
 
-void pn_event_init(pn_event_t *event, void *context)
-{
-  assert(context);
-  event->context = context;
-  pn_incref(event->context);
-}
-
 pn_event_type_t pn_event_type(pn_event_t *event)
 {
   return event->type;
@@ -194,6 +191,12 @@ pn_event_category_t pn_event_category(pn
   return (pn_event_category_t)(event->type & 0xFFFF0000);
 }
 
+void *pn_event_context(pn_event_t *event)
+{
+  assert(event);
+  return event->context;
+}
+
 pn_connection_t *pn_event_connection(pn_event_t *event)
 {
   pn_session_t *ssn;

Modified: qpid/proton/trunk/proton-c/src/engine/event.h
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/engine/event.h?rev=1603955&r1=1603954&r2=1603955&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/engine/event.h (original)
+++ qpid/proton/trunk/proton-c/src/engine/event.h Thu Jun 19 17:22:43 2014
@@ -22,8 +22,7 @@
  *
  */
 
-pn_event_t *pn_collector_put(pn_collector_t *collector, pn_event_type_t type);
-
-void pn_event_init(pn_event_t *event, void *context);
+pn_event_t *pn_collector_put(pn_collector_t *collector, pn_event_type_t type,
+                             void *context);
 
 #endif /* event.h */

Modified: qpid/proton/trunk/proton-c/src/transport/transport.c
URL: 
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/transport/transport.c?rev=1603955&r1=1603954&r2=1603955&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/transport/transport.c (original)
+++ qpid/proton/trunk/proton-c/src/transport/transport.c Thu Jun 19 17:22:43 
2014
@@ -265,11 +265,7 @@ int pn_transport_bind(pn_transport_t *tr
   pn_incref(connection);
   if (transport->open_rcvd) {
     PN_SET_REMOTE(connection->endpoint.state, PN_REMOTE_ACTIVE);
-    pn_event_t *event = pn_collector_put(connection->collector,
-                                         PN_CONNECTION_REMOTE_STATE);
-    if (event) {
-      pn_event_init(event, connection);
-    }
+    pn_collector_put(connection->collector, PN_CONNECTION_REMOTE_STATE, 
connection);
     if (!pn_error_code(transport->error)) {
       transport->disp->halt = false;
       transport_consume(transport);        // blech - testBindAfterOpen
@@ -454,12 +450,7 @@ int pn_do_open(pn_dispatcher_t *disp)
 
   if (conn) {
     PN_SET_REMOTE(conn->endpoint.state, PN_REMOTE_ACTIVE);
-
-    pn_event_t *event = pn_collector_put(conn->collector,
-                                         PN_CONNECTION_REMOTE_STATE);
-    if (event) {
-      pn_event_init(event, conn);
-    }
+    pn_collector_put(conn->collector, PN_CONNECTION_REMOTE_STATE, conn);
   } else {
     transport->disp->halt = true;
   }
@@ -488,13 +479,7 @@ int pn_do_begin(pn_dispatcher_t *disp)
   ssn->state.incoming_transfer_count = next;
   pn_map_channel(transport, disp->channel, ssn);
   PN_SET_REMOTE(ssn->endpoint.state, PN_REMOTE_ACTIVE);
-
-  pn_event_t *event = pn_collector_put(transport->connection->collector,
-                                       PN_SESSION_REMOTE_STATE);
-  if (event) {
-    pn_event_init(event, ssn);
-  }
-
+  pn_collector_put(transport->connection->collector, PN_SESSION_REMOTE_STATE, 
ssn);
   return 0;
 }
 
@@ -664,12 +649,7 @@ int pn_do_attach(pn_dispatcher_t *disp)
     link->state.delivery_count = idc;
   }
 
-  pn_event_t *event = pn_collector_put(transport->connection->collector,
-                                       PN_LINK_REMOTE_STATE);
-  if (event) {
-    pn_event_init(event, link);
-  }
-
+  pn_collector_put(transport->connection->collector, PN_LINK_REMOTE_STATE, 
link);
   return 0;
 }
 
@@ -750,11 +730,7 @@ int pn_do_transfer(pn_dispatcher_t *disp
     pn_post_flow(transport, ssn, link);
   }
 
-  pn_event_t *event = pn_collector_put(transport->connection->collector, 
PN_DELIVERY);
-  if (event) {
-    pn_event_init(event, delivery);
-  }
-
+  pn_collector_put(transport->connection->collector, PN_DELIVERY, delivery);
   return 0;
 }
 
@@ -804,10 +780,7 @@ int pn_do_flow(pn_dispatcher_t *disp)
       }
     }
 
-    pn_event_t *event = pn_collector_put(transport->connection->collector, 
PN_LINK_FLOW);
-    if (event) {
-      pn_event_init(event, link);
-    }
+    pn_collector_put(transport->connection->collector, PN_LINK_FLOW, link);
   }
 
   return 0;
@@ -902,10 +875,7 @@ int pn_do_disposition(pn_dispatcher_t *d
       delivery->updated = true;
       pn_work_update(transport->connection, delivery);
 
-      pn_event_t *event = pn_collector_put(transport->connection->collector, 
PN_DELIVERY);
-      if (event) {
-        pn_event_init(event, delivery);
-      }
+      pn_collector_put(transport->connection->collector, PN_DELIVERY, 
delivery);
     }
   }
 
@@ -935,11 +905,7 @@ int pn_do_detach(pn_dispatcher_t *disp)
   if (closed)
   {
     PN_SET_REMOTE(link->endpoint.state, PN_REMOTE_CLOSED);
-    pn_event_t *event = pn_collector_put(transport->connection->collector,
-                                         PN_LINK_REMOTE_STATE);
-    if (event) {
-      pn_event_init(event, link);
-    }
+    pn_collector_put(transport->connection->collector, PN_LINK_REMOTE_STATE, 
link);
   } else {
     // TODO: implement
   }
@@ -955,11 +921,7 @@ int pn_do_end(pn_dispatcher_t *disp)
   int err = pn_scan_error(disp->args, &ssn->endpoint.remote_condition, 
SCAN_ERROR_DEFAULT);
   if (err) return err;
   PN_SET_REMOTE(ssn->endpoint.state, PN_REMOTE_CLOSED);
-  pn_event_t *event = pn_collector_put(transport->connection->collector,
-                                       PN_SESSION_REMOTE_STATE);
-  if (event) {
-    pn_event_init(event, ssn);
-  }
+  pn_collector_put(transport->connection->collector, PN_SESSION_REMOTE_STATE, 
ssn);
   pn_unmap_channel(transport, ssn);
   return 0;
 }
@@ -972,11 +934,7 @@ int pn_do_close(pn_dispatcher_t *disp)
   if (err) return err;
   transport->close_rcvd = true;
   PN_SET_REMOTE(conn->endpoint.state, PN_REMOTE_CLOSED);
-  pn_event_t *event = pn_collector_put(transport->connection->collector,
-                                       PN_CONNECTION_REMOTE_STATE);
-  if (event) {
-    pn_event_init(event, conn);
-  }
+  pn_collector_put(transport->connection->collector, 
PN_CONNECTION_REMOTE_STATE, conn);
   return 0;
 }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to