static ssize_t pni_connection_capacity(pn_selectable_t *sel) { pn_transport_t *transport = pni_transport(sel); ssize_t capacity = pn_transport_capacity(transport); if (capacity < 0) { if (pn_transport_closed(transport)) { pn_selectable_terminate(sel); } } return capacity; }
static ssize_t pni_connection_pending(pn_selectable_t *sel) { pn_transport_t *transport = pni_transport(sel); ssize_t pending = pn_transport_pending(transport); if (pending < 0) { if (pn_transport_closed(transport)) { pn_selectable_terminate(sel); } } return pending; }
bool connection_engine::dispatch() { if (collector_.get()) { for (pn_event_t *e = pn_collector_peek(collector_.get()); e; e = pn_collector_peek(collector_.get())) { proton_event pe(e, container_); try { pe.dispatch(*handler_); } catch (const std::exception& e) { disconnected(error_condition("exception", e.what())); } pn_collector_pop(collector_.get()); } } return !(pn_transport_closed(unwrap(transport_))); }
bool connection_engine::closed() const { return pn_transport_closed(ctx_->transport); }