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