void messaging_adapter::on_session_remote_close(proton_event &pe) { pn_event_t *cevent = pe.pn_event(); pn_session_t *session = pn_event_session(cevent); class session s(make_wrapper(session)); if (pn_condition_is_set(pn_session_remote_condition(session))) { delegate_.on_session_error(s); } delegate_.on_session_close(s); pn_session_close(session); }
void messaging_adapter::on_session_remote_close(event &e) { proton_event *pe = dynamic_cast<proton_event*>(&e); if (pe) { pn_event_t *cevent = pe->pn_event(); pn_session_t *session = pn_event_session(cevent); if (pn_condition_is_set(pn_session_remote_condition(session))) { messaging_event mevent(messaging_event::SESSION_ERROR, *pe); on_session_error(mevent); } else { messaging_event mevent(messaging_event::SESSION_CLOSE, *pe); on_session_close(mevent); } pn_session_close(session); } }
condition session::remote_condition() const { return condition(pn_session_remote_condition(pn_object())); }
error_condition session::error() const { return make_wrapper(pn_session_remote_condition(pn_object())); }