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);
    }
}
예제 #3
0
condition session::remote_condition() const {
    return condition(pn_session_remote_condition(pn_object()));
}
예제 #4
0
error_condition session::error() const {
    return make_wrapper(pn_session_remote_condition(pn_object()));
}