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 2015/02/04 09:26:56 UTC

[1/2] qpid-proton git commit: adde pn_handler_clear

Repository: qpid-proton
Updated Branches:
  refs/heads/master b9423d462 -> c242ac857


adde pn_handler_clear


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/228862c4
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/228862c4
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/228862c4

Branch: refs/heads/master
Commit: 228862c471a84e8d55586262a31a6f7dc10b8fd2
Parents: b9423d4
Author: Rafael Schloming <rh...@alum.mit.edu>
Authored: Tue Feb 3 06:33:35 2015 -0500
Committer: Rafael Schloming <rh...@alum.mit.edu>
Committed: Wed Feb 4 02:43:28 2015 -0500

----------------------------------------------------------------------
 proton-c/bindings/python/proton/__init__.py | 3 +++
 proton-c/include/proton/reactor.h           | 1 +
 proton-c/src/reactor/handler.c              | 9 +++++++++
 3 files changed, 13 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/228862c4/proton-c/bindings/python/proton/__init__.py
----------------------------------------------------------------------
diff --git a/proton-c/bindings/python/proton/__init__.py b/proton-c/bindings/python/proton/__init__.py
index beaa23f..eea8b91 100644
--- a/proton-c/bindings/python/proton/__init__.py
+++ b/proton-c/bindings/python/proton/__init__.py
@@ -3568,6 +3568,9 @@ class WrappedHandler(Wrapper):
     pn_handler_add(self._impl, impl)
     pn_decref(impl)
 
+  def clear(self):
+    pn_handler_clear(self._impl)
+
 def _chandler(obj, on_error=None):
   if obj is None:
     return None

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/228862c4/proton-c/include/proton/reactor.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/reactor.h b/proton-c/include/proton/reactor.h
index f7a0526..32e0542 100644
--- a/proton-c/include/proton/reactor.h
+++ b/proton-c/include/proton/reactor.h
@@ -53,6 +53,7 @@ PN_EXTERN pn_handler_t *pn_handler_new(void (*dispatch)(pn_handler_t *, pn_event
 PN_EXTERN void pn_handler_free(pn_handler_t *handler);
 PN_EXTERN void *pn_handler_mem(pn_handler_t *handler);
 PN_EXTERN void pn_handler_add(pn_handler_t *handler, pn_handler_t *child);
+PN_EXTERN void pn_handler_clear(pn_handler_t *handler);
 PN_EXTERN void pn_handler_dispatch(pn_handler_t *handler, pn_event_t *event);
 
 PN_EXTERN pn_reactor_t *pn_reactor(void);

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/228862c4/proton-c/src/reactor/handler.c
----------------------------------------------------------------------
diff --git a/proton-c/src/reactor/handler.c b/proton-c/src/reactor/handler.c
index d35a5ed..c4e6866 100644
--- a/proton-c/src/reactor/handler.c
+++ b/proton-c/src/reactor/handler.c
@@ -81,13 +81,22 @@ void *pn_handler_mem(pn_handler_t *handler) {
 }
 
 void pn_handler_add(pn_handler_t *handler, pn_handler_t *child) {
+  assert(handler);
   if (!handler->children) {
     handler->children = pn_list(PN_OBJECT, 0);
   }
   pn_list_add(handler->children, child);
 }
 
+void pn_handler_clear(pn_handler_t *handler) {
+  assert(handler);
+  if (handler->children) {
+    pn_list_clear(handler->children);
+  }
+}
+
 void pn_handler_dispatch(pn_handler_t *handler, pn_event_t *event) {
+  assert(handler);
   if (handler->dispatch) {
     handler->dispatch(handler, event);
   }


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


[2/2] qpid-proton git commit: added access to global handler; tweaked names

Posted by rh...@apache.org.
added access to global handler; tweaked names


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

Branch: refs/heads/master
Commit: c242ac8574a82c3e97fcb5061a71cf925a1cb66d
Parents: 228862c
Author: Rafael Schloming <rh...@alum.mit.edu>
Authored: Wed Feb 4 02:47:27 2015 -0500
Committer: Rafael Schloming <rh...@alum.mit.edu>
Committed: Wed Feb 4 02:47:27 2015 -0500

----------------------------------------------------------------------
 proton-c/bindings/python/proton/__init__.py |  1 +
 proton-c/bindings/python/proton/reactors.py | 21 ++++++++++++++++-----
 proton-c/include/proton/reactor.h           |  6 ++++--
 proton-c/src/reactor/acceptor.c             |  2 +-
 proton-c/src/reactor/reactor.c              | 16 ++++++++++++++--
 proton-c/src/tests/reactor.c                | 16 ++++++++--------
 6 files changed, 44 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c242ac85/proton-c/bindings/python/proton/__init__.py
----------------------------------------------------------------------
diff --git a/proton-c/bindings/python/proton/__init__.py b/proton-c/bindings/python/proton/__init__.py
index eea8b91..53b48f6 100644
--- a/proton-c/bindings/python/proton/__init__.py
+++ b/proton-c/bindings/python/proton/__init__.py
@@ -3564,6 +3564,7 @@ class WrappedHandler(Wrapper):
       on_error(info)
 
   def add(self, handler):
+    if handler is None: return
     impl = _chandler(handler, self._on_error)
     pn_handler_add(self._impl, impl)
     pn_decref(impl)

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c242ac85/proton-c/bindings/python/proton/reactors.py
----------------------------------------------------------------------
diff --git a/proton-c/bindings/python/proton/reactors.py b/proton-c/bindings/python/proton/reactors.py
index 0c8a4b3..c01c721 100644
--- a/proton-c/bindings/python/proton/reactors.py
+++ b/proton-c/bindings/python/proton/reactors.py
@@ -921,11 +921,16 @@ class Reactor(Wrapper):
     def _mark_handler(self, handler):
         handler.__dict__["on_error"] = self.on_error
 
-    def global_(self, handler):
+    def _get_global(self):
+        return _wrap_handler(self, pn_reactor_get_global_handler(self._impl))
+
+    def _set_global(self, handler):
         impl = _chandler(handler, self.on_error)
-        pn_reactor_global(self._impl, impl)
+        pn_reactor_set_global_handler(self._impl, impl)
         pn_decref(impl)
 
+    global_handler = property(_get_global, _set_global)
+
     def _get_timeout(self):
         return millis2secs(pn_reactor_get_timeout(self._impl))
 
@@ -940,9 +945,15 @@ class Reactor(Wrapper):
     def mark(self):
         pn_reactor_mark(self._impl)
 
-    @property
-    def handler(self):
-        return _wrap_handler(self, pn_reactor_handler(self._impl))
+    def _get_handler(self):
+        return _wrap_handler(self, pn_reactor_get_handler(self._impl))
+
+    def _set_handler(self, handler):
+        impl = _chandler(handler, self._on_error)
+        pn_reactor_set_handler(self._impl, impl)
+        pn_decref(impl)
+
+    handler = property(_get_handler, _set_handler)
 
     def run(self):
         self.timeout = 3.14159265359

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c242ac85/proton-c/include/proton/reactor.h
----------------------------------------------------------------------
diff --git a/proton-c/include/proton/reactor.h b/proton-c/include/proton/reactor.h
index 32e0542..8e302e7 100644
--- a/proton-c/include/proton/reactor.h
+++ b/proton-c/include/proton/reactor.h
@@ -65,8 +65,10 @@ PN_EXTERN pn_timestamp_t pn_reactor_now(pn_reactor_t *reactor);
 PN_EXTERN void pn_reactor_yield(pn_reactor_t *reactor);
 PN_EXTERN void pn_reactor_free(pn_reactor_t *reactor);
 PN_EXTERN pn_collector_t *pn_reactor_collector(pn_reactor_t *reactor);
-PN_EXTERN void pn_reactor_global(pn_reactor_t *reactor, pn_handler_t *handler);
-PN_EXTERN pn_handler_t *pn_reactor_handler(pn_reactor_t *reactor);
+PN_EXTERN pn_handler_t *pn_reactor_get_global_handler(pn_reactor_t *reactor);
+PN_EXTERN void pn_reactor_set_global_handler(pn_reactor_t *reactor, pn_handler_t *handler);
+PN_EXTERN pn_handler_t *pn_reactor_get_handler(pn_reactor_t *reactor);
+PN_EXTERN void pn_reactor_set_handler(pn_reactor_t *reactor, pn_handler_t *handler);
 PN_EXTERN pn_io_t *pn_reactor_io(pn_reactor_t *reactor);
 PN_EXTERN pn_list_t *pn_reactor_children(pn_reactor_t *reactor);
 PN_EXTERN pn_selectable_t *pn_reactor_selectable(pn_reactor_t *reactor);

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c242ac85/proton-c/src/reactor/acceptor.c
----------------------------------------------------------------------
diff --git a/proton-c/src/reactor/acceptor.c b/proton-c/src/reactor/acceptor.c
index d44938f..ccd81f0 100644
--- a/proton-c/src/reactor/acceptor.c
+++ b/proton-c/src/reactor/acceptor.c
@@ -35,7 +35,7 @@ void pni_acceptor_readable(pn_selectable_t *sel) {
   char name[1024];
   pn_socket_t sock = pn_accept(pn_reactor_io(reactor), pn_selectable_get_fd(sel), name, 1024);
   pn_handler_t *handler = (pn_handler_t *) pn_record_get(pn_selectable_attachments(sel), PNI_ACCEPTOR_HANDLER);
-  if (!handler) { handler = pn_reactor_handler(reactor); }
+  if (!handler) { handler = pn_reactor_get_handler(reactor); }
   pn_connection_t *conn = pn_reactor_connection(reactor, handler);
   pn_transport_t *trans = pn_transport();
   pn_transport_set_server(trans);

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c242ac85/proton-c/src/reactor/reactor.c
----------------------------------------------------------------------
diff --git a/proton-c/src/reactor/reactor.c b/proton-c/src/reactor/reactor.c
index e588881..418b186 100644
--- a/proton-c/src/reactor/reactor.c
+++ b/proton-c/src/reactor/reactor.c
@@ -123,18 +123,30 @@ void pn_reactor_free(pn_reactor_t *reactor) {
   }
 }
 
-void pn_reactor_global(pn_reactor_t *reactor, pn_handler_t *handler) {
+pn_handler_t *pn_reactor_get_global_handler(pn_reactor_t *reactor) {
+  assert(reactor);
+  return reactor->global;
+}
+
+void pn_reactor_set_global_handler(pn_reactor_t *reactor, pn_handler_t *handler) {
   assert(reactor);
   pn_decref(reactor->global);
   reactor->global = handler;
   pn_incref(reactor->global);
 }
 
-pn_handler_t *pn_reactor_handler(pn_reactor_t *reactor) {
+pn_handler_t *pn_reactor_get_handler(pn_reactor_t *reactor) {
   assert(reactor);
   return reactor->handler;
 }
 
+void pn_reactor_set_handler(pn_reactor_t *reactor, pn_handler_t *handler) {
+  assert(reactor);
+  pn_decref(reactor->handler);
+  reactor->handler = handler;
+  pn_incref(reactor->handler);
+}
+
 pn_io_t *pn_reactor_io(pn_reactor_t *reactor) {
   assert(reactor);
   return reactor->io;

http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/c242ac85/proton-c/src/tests/reactor.c
----------------------------------------------------------------------
diff --git a/proton-c/src/tests/reactor.c b/proton-c/src/tests/reactor.c
index f5701fa..f6abf76 100644
--- a/proton-c/src/tests/reactor.c
+++ b/proton-c/src/tests/reactor.c
@@ -105,7 +105,7 @@ void expect(pn_list_t *events, ...) {
 static void test_reactor_handler(void) {
   pn_reactor_t *reactor = pn_reactor();
   assert(reactor);
-  pn_handler_t *handler = pn_reactor_handler(reactor);
+  pn_handler_t *handler = pn_reactor_get_handler(reactor);
   assert(handler);
   pn_list_t *events = pn_list(PN_VOID, 0);
   pn_handler_t *th = test_handler(reactor, events);
@@ -119,7 +119,7 @@ static void test_reactor_handler(void) {
 static void test_reactor_handler_free(void) {
   pn_reactor_t *reactor = pn_reactor();
   assert(reactor);
-  pn_handler_t *handler = pn_reactor_handler(reactor);
+  pn_handler_t *handler = pn_reactor_get_handler(reactor);
   assert(handler);
   pn_list_t *events = pn_list(PN_VOID, 0);
   pn_handler_add(handler, test_handler(reactor, events));
@@ -131,7 +131,7 @@ static void test_reactor_handler_free(void) {
 static void test_reactor_handler_run(void) {
   pn_reactor_t *reactor = pn_reactor();
   assert(reactor);
-  pn_handler_t *handler = pn_reactor_handler(reactor);
+  pn_handler_t *handler = pn_reactor_get_handler(reactor);
   assert(handler);
   pn_list_t *events = pn_list(PN_VOID, 0);
   pn_handler_t *th = test_handler(reactor, events);
@@ -146,7 +146,7 @@ static void test_reactor_handler_run(void) {
 static void test_reactor_handler_run_free(void) {
   pn_reactor_t *reactor = pn_reactor();
   assert(reactor);
-  pn_handler_t *handler = pn_reactor_handler(reactor);
+  pn_handler_t *handler = pn_reactor_get_handler(reactor);
   assert(handler);
   pn_list_t *events = pn_list(PN_VOID, 0);
   pn_handler_add(handler, test_handler(reactor, events));
@@ -163,7 +163,7 @@ static void test_reactor_connection(void) {
   pn_handler_t *tch = test_handler(reactor, cevents);
   pn_connection_t *connection = pn_reactor_connection(reactor, tch);
   assert(connection);
-  pn_handler_t *root = pn_reactor_handler(reactor);
+  pn_handler_t *root = pn_reactor_get_handler(reactor);
   pn_list_t *revents = pn_list(PN_VOID, 0);
   pn_handler_add(root, test_handler(reactor, revents));
   pn_reactor_run(reactor);
@@ -210,7 +210,7 @@ static pn_handler_t *tra_handler(pn_acceptor_t *acceptor) {
 static void test_reactor_acceptor_run(void) {
   pn_reactor_t *reactor = pn_reactor();
   assert(reactor);
-  pn_handler_t *root = pn_reactor_handler(reactor);
+  pn_handler_t *root = pn_reactor_get_handler(reactor);
   assert(root);
   pn_acceptor_t *acceptor = pn_reactor_acceptor(reactor, "0.0.0.0", "5678", NULL);
   assert(acceptor);
@@ -411,7 +411,7 @@ static void test_reactor_transfer(int count, int window) {
 
 static void test_reactor_schedule(void) {
   pn_reactor_t *reactor = pn_reactor();
-  pn_handler_t *root = pn_reactor_handler(reactor);
+  pn_handler_t *root = pn_reactor_get_handler(reactor);
   pn_list_t *events = pn_list(PN_VOID, 0);
   pn_handler_add(root, test_handler(reactor, events));
   pn_reactor_schedule(reactor, 0, NULL);
@@ -424,7 +424,7 @@ static void test_reactor_schedule(void) {
 
 static void test_reactor_schedule_handler(void) {
   pn_reactor_t *reactor = pn_reactor();
-  pn_handler_t *root = pn_reactor_handler(reactor);
+  pn_handler_t *root = pn_reactor_get_handler(reactor);
   pn_list_t *events = pn_list(PN_VOID, 0);
   pn_list_t *tevents = pn_list(PN_VOID, 0);
   pn_handler_add(root, test_handler(reactor, events));


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