static void inf_test_mass_join_subscribe_finished_cb(InfRequest* request, const InfRequestResult* result, const GError* error, gpointer user_data) { InfTestMassJoiner* joiner; const InfBrowserIter* iter; InfSession* session; joiner = (InfTestMassJoiner*)user_data; inf_request_result_get_subscribe_session(result, NULL, &iter, NULL); joiner->session = INFC_SESSION_PROXY( inf_browser_get_session( INF_BROWSER(joiner->browser), iter ) ); g_assert(joiner->session != NULL); g_object_get(G_OBJECT(joiner->session), "session", &session, NULL); switch(inf_session_get_status(session)) { case INF_SESSION_PRESYNC: case INF_SESSION_SYNCHRONIZING: g_signal_connect_after( G_OBJECT(session), "synchronization-failed", G_CALLBACK(inf_test_mass_join_session_synchronization_failed_cb), joiner ); g_signal_connect_after( G_OBJECT(session), "synchronization-complete", G_CALLBACK(inf_test_mass_join_session_synchronization_complete_cb), joiner ); break; case INF_SESSION_RUNNING: inf_test_mass_join_join_user(joiner); break; case INF_SESSION_CLOSED: fprintf( stderr, "Joiner %s: Session closed after subscription\n", joiner->username ); inf_xml_connection_close(infc_browser_get_connection(joiner->browser)); break; } g_object_unref(session); }
static void on_subscribe_finished_static(InfRequest* request, const InfRequestResult* res, const GError* error, gpointer user_data) { const InfBrowserIter* iter; if(error == NULL) { inf_request_result_get_subscribe_session( res, NULL, &iter, NULL); } static_cast<OperationSubscribePath*>(user_data)-> on_subscribe_finished(iter, error); }
static void infinoted_plugin_document_stream_subscribe_func(InfRequest* request, const InfRequestResult* res, const GError* error, gpointer user_data) { InfinotedPluginDocumentStreamStream* stream; InfSessionProxy* proxy; stream = (InfinotedPluginDocumentStreamStream*)user_data; stream->subscribe_request = NULL; if(error != NULL) { infinoted_plugin_document_stream_send_error(stream, error->message); } else { inf_request_result_get_subscribe_session(res, NULL, NULL, &proxy); infinoted_plugin_document_stream_subscribe_done(stream, proxy); } }