Example #1
0
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;
}
Example #2
0
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);
}