You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by gs...@apache.org on 2014/11/26 21:05:52 UTC
[05/35] qpid-proton git commit: PROTON-749: Change tick layer
callbacks so that they're not chained just called in sequence
PROTON-749: Change tick layer callbacks so that they're not chained just called in sequence
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/120639bf
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/120639bf
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/120639bf
Branch: refs/heads/examples
Commit: 120639bf6ebed39fa52c4743baf92a90df87d497
Parents: c814d5c
Author: Andrew Stitcher <as...@apache.org>
Authored: Fri Aug 15 17:58:37 2014 -0400
Committer: Andrew Stitcher <as...@apache.org>
Committed: Mon Nov 17 14:55:18 2014 -0500
----------------------------------------------------------------------
proton-c/src/engine/engine-internal.h | 2 --
proton-c/src/sasl/sasl.c | 8 ++++----
proton-c/src/ssl/openssl.c | 10 +++++-----
proton-c/src/transport/transport.c | 26 +++++++++++---------------
proton-c/src/windows/schannel.c | 10 +++++-----
5 files changed, 25 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/120639bf/proton-c/src/engine/engine-internal.h
----------------------------------------------------------------------
diff --git a/proton-c/src/engine/engine-internal.h b/proton-c/src/engine/engine-internal.h
index 86f5161..40a839b 100644
--- a/proton-c/src/engine/engine-internal.h
+++ b/proton-c/src/engine/engine-internal.h
@@ -300,8 +300,6 @@ void pn_link_dump(pn_link_t *link);
void pn_dump(pn_connection_t *conn);
void pn_transport_sasl_init(pn_transport_t *transport);
-pn_timestamp_t pn_io_layer_tick_passthru(pn_transport_t *, unsigned int, pn_timestamp_t);
-
void pn_condition_init(pn_condition_t *condition);
void pn_condition_tini(pn_condition_t *condition);
void pn_modified(pn_connection_t *connection, pn_endpoint_t *endpoint, bool emit);
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/120639bf/proton-c/src/sasl/sasl.c
----------------------------------------------------------------------
diff --git a/proton-c/src/sasl/sasl.c b/proton-c/src/sasl/sasl.c
index 97bead4..5034eb7 100644
--- a/proton-c/src/sasl/sasl.c
+++ b/proton-c/src/sasl/sasl.c
@@ -61,28 +61,28 @@ static ssize_t pn_output_write_sasl(pn_transport_t *transport, unsigned int laye
const pn_io_layer_t sasl_headers_layer = {
pn_input_read_sasl_header,
pn_output_write_sasl_header,
- pn_io_layer_tick_passthru,
+ NULL,
NULL
};
const pn_io_layer_t sasl_write_header_layer = {
pn_input_read_sasl,
pn_output_write_sasl_header,
- pn_io_layer_tick_passthru,
+ NULL,
NULL
};
const pn_io_layer_t sasl_read_header_layer = {
pn_input_read_sasl_header,
pn_output_write_sasl,
- pn_io_layer_tick_passthru,
+ NULL,
NULL
};
const pn_io_layer_t sasl_layer = {
pn_input_read_sasl,
pn_output_write_sasl,
- pn_io_layer_tick_passthru,
+ NULL,
NULL
};
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/120639bf/proton-c/src/ssl/openssl.c
----------------------------------------------------------------------
diff --git a/proton-c/src/ssl/openssl.c b/proton-c/src/ssl/openssl.c
index a763cfb..7202f7a 100644
--- a/proton-c/src/ssl/openssl.c
+++ b/proton-c/src/ssl/openssl.c
@@ -670,35 +670,35 @@ int pn_ssl_domain_set_peer_authentication(pn_ssl_domain_t *domain,
const pn_io_layer_t unknown_layer = {
process_input_unknown,
process_output_unknown,
- pn_io_layer_tick_passthru,
+ NULL,
NULL
};
const pn_io_layer_t ssl_layer = {
process_input_ssl,
process_output_ssl,
- pn_io_layer_tick_passthru,
+ NULL,
buffered_output
};
const pn_io_layer_t ssl_input_closed_layer = {
process_input_done,
process_output_ssl,
- pn_io_layer_tick_passthru,
+ NULL,
buffered_output
};
const pn_io_layer_t ssl_output_closed_layer = {
process_input_ssl,
process_output_done,
- pn_io_layer_tick_passthru,
+ NULL,
buffered_output
};
const pn_io_layer_t ssl_closed_layer = {
process_input_done,
process_output_done,
- pn_io_layer_tick_passthru,
+ NULL,
buffered_output
};
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/120639bf/proton-c/src/transport/transport.c
----------------------------------------------------------------------
diff --git a/proton-c/src/transport/transport.c b/proton-c/src/transport/transport.c
index d93e16f..2c086db 100644
--- a/proton-c/src/transport/transport.c
+++ b/proton-c/src/transport/transport.c
@@ -109,7 +109,7 @@ static void pni_default_tracer(pn_transport_t *transport, const char *message)
const pn_io_layer_t pni_passthru_layer = {
pn_io_layer_input_passthru,
pn_io_layer_output_passthru,
- pn_io_layer_tick_passthru,
+ NULL,
NULL
};
@@ -1095,8 +1095,8 @@ static ssize_t transport_consume(pn_transport_t *transport)
while (transport->input_pending || transport->tail_closed) {
ssize_t n;
- n = transport->io_layers[PN_IO_SSL]->
- process_input( transport, PN_IO_SSL,
+ n = transport->io_layers[0]->
+ process_input( transport, 0,
transport->input_buf + consumed,
transport->input_pending );
if (n > 0) {
@@ -1904,8 +1904,8 @@ static ssize_t transport_produce(pn_transport_t *transport)
while (space > 0) {
ssize_t n;
- n = transport->io_layers[PN_IO_SSL]->
- process_output( transport, PN_IO_SSL,
+ n = transport->io_layers[0]->
+ process_output( transport, 0,
&transport->output_buf[transport->output_pending],
space );
if (n > 0) {
@@ -2052,7 +2052,12 @@ pn_millis_t pn_transport_get_remote_idle_timeout(pn_transport_t *transport)
pn_timestamp_t pn_transport_tick(pn_transport_t *transport, pn_timestamp_t now)
{
- return transport->io_layers[PN_IO_SSL]->process_tick(transport, PN_IO_SSL, now);
+ pn_timestamp_t r = 0;
+ for (int i = 0; i<PN_IO_LAYER_CT; ++i) {
+ if (transport->io_layers[i]->process_tick)
+ r = pn_timestamp_min(r, transport->io_layers[i]->process_tick(transport, i, now));
+ }
+ return r;
}
uint64_t pn_transport_get_frames_output(const pn_transport_t *transport)
@@ -2085,15 +2090,6 @@ ssize_t pn_io_layer_output_passthru(pn_transport_t *transport, unsigned int laye
return PN_EOS;
}
-/** Pass through tick handler */
-pn_timestamp_t pn_io_layer_tick_passthru(pn_transport_t *transport, unsigned int layer, pn_timestamp_t now)
-{
- if (layer+1<PN_IO_LAYER_CT)
- return transport->io_layers[layer+1]->process_tick(transport, layer+1, now);
- return 0;
-}
-
-
///
// input
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/120639bf/proton-c/src/windows/schannel.c
----------------------------------------------------------------------
diff --git a/proton-c/src/windows/schannel.c b/proton-c/src/windows/schannel.c
index 397fa21..7f47745 100644
--- a/proton-c/src/windows/schannel.c
+++ b/proton-c/src/windows/schannel.c
@@ -351,35 +351,35 @@ int pn_ssl_domain_set_peer_authentication(pn_ssl_domain_t *domain,
const pn_io_layer_t unknown_layer = {
process_input_unknown,
process_output_unknown,
- pn_io_layer_tick_passthru,
+ NULL,
NULL
};
const pn_io_layer_t ssl_layer = {
process_input_ssl,
process_output_ssl,
- pn_io_layer_tick_passthru,
+ NULL,
buffered_output
};
const pn_io_layer_t ssl_input_closed_layer = {
process_input_done,
process_output_ssl,
- pn_io_layer_tick_passthru,
+ NULL,
buffered_output
};
const pn_io_layer_t ssl_output_closed_layer = {
process_input_ssl,
process_output_done,
- pn_io_layer_tick_passthru,
+ NULL,
buffered_output
};
const pn_io_layer_t ssl_closed_layer = {
process_input_done,
process_output_done,
- pn_io_layer_tick_passthru,
+ NULL,
buffered_output
};
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org