void LM::Presentity::edit_presentity_form_submitted (bool submitted, Ekiga::Form& result) { if (!submitted) return; const std::string name = result.text ("name"); const std::set<std::string> groups = result.editable_set ("groups"); LmMessage* message = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ, LM_MESSAGE_SUB_TYPE_SET); LmMessageNode* query = lm_message_node_add_child (lm_message_get_node (message), "query", NULL); lm_message_node_set_attribute (query, "xmlns", "jabber:iq:roster"); LmMessageNode* node = lm_message_node_add_child (query, "item", NULL); { gchar* escaped = g_markup_escape_text (name.c_str (), -1); lm_message_node_set_attributes (node, "jid", get_jid ().c_str (), "name", escaped, NULL); g_free (escaped); } for (std::set<std::string>::const_iterator iter = groups.begin (); iter != groups.end (); ++iter) { gchar* escaped = g_markup_escape_text (iter->c_str (), -1); lm_message_node_add_child (node, "group", escaped); g_free (escaped); } lm_connection_send_with_reply (connection, message, build_message_handler (boost::bind(&LM::Presentity::handle_edit_reply, this, _1, _2)), NULL); lm_message_unref (message); }
void LM::Presentity::ask_to () { LmMessage* message = lm_message_new (NULL, LM_MESSAGE_TYPE_PRESENCE); lm_message_node_set_attributes (lm_message_get_node (message), "to", get_jid ().c_str (), "type", "subscribe", NULL); lm_connection_send_with_reply (connection, message, get_ignore_answer_handler (), NULL); lm_message_unref (message); }
void LM::Presentity::remove_presentity () { LmMessage* message = lm_message_new_with_sub_type (NULL, LM_MESSAGE_TYPE_IQ, LM_MESSAGE_SUB_TYPE_SET); LmMessageNode* query = lm_message_node_add_child (lm_message_get_node (message), "query", NULL); lm_message_node_set_attribute (query, "xmlns", "jabber:iq:roster"); LmMessageNode* node = lm_message_node_add_child (query, "item", NULL); lm_message_node_set_attributes (node, "jid", get_jid ().c_str (), "subscription", "remove", NULL); lm_connection_send_with_reply (connection, message, get_ignore_answer_handler (), NULL); lm_message_unref (message); }
bool LM::Presentity::has_uri (const std::string uri) const { return split_jid(uri).first == split_jid(get_jid ()).first; }
void gw_em_mad_state_callback(void *arg, char *job_contact, int job_state, int error_code ) { int jid = -1; int done = 0; jid = get_jid(job_contact); if (jid == -1) { return; } switch (job_state) { case GLOBUS_GRAM_PROTOCOL_JOB_STATE_PENDING: printf("CALLBACK %d SUCCESS PENDING\n", jid); if (job_pool.cancel_state[jid] == 1) { globus_gram_client_job_cancel(job_contact); job_pool.cancel_state[jid] = 0; } break; case GLOBUS_GRAM_PROTOCOL_JOB_STATE_SUSPENDED: printf("CALLBACK %d SUCCESS SUSPENDED\n", jid); if (job_pool.cancel_state[jid] == 1) { globus_gram_client_job_cancel(job_contact); job_pool.cancel_state[jid] = 0; } break; case GLOBUS_GRAM_PROTOCOL_JOB_STATE_ACTIVE: printf("CALLBACK %d SUCCESS ACTIVE\n", jid); if (job_pool.cancel_state[jid] == 1) { globus_gram_client_job_cancel(job_contact); job_pool.cancel_state[jid] = 0; } break; case GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED: if (error_code == GLOBUS_GRAM_PROTOCOL_ERROR_USER_CANCELLED ) printf("CALLBACK %d SUCCESS FAILED\n", jid); else printf("CALLBACK %d FAILURE %s (error %d)\n", jid, globus_gram_client_error_string(error_code), error_code); done = 1; job_pool.cancel_state[jid] = 0; break; case GLOBUS_GRAM_PROTOCOL_JOB_STATE_DONE: printf("CALLBACK %d SUCCESS DONE\n", jid); done = 1; job_pool.cancel_state[jid] = 0; break; } if (done && (jid != -1)) del_job(jid); }
void gw_em_mad_state_callback(void *arg, const char *job_contact, globus_gram_client_job_info_t *job_info) { globus_gram_protocol_extension_t *entry; int jid = -1; int done = 0; int job_state; jid = get_jid(job_contact); if (jid == -1) { return; } job_state = job_info->job_state; switch (job_state) { case GLOBUS_GRAM_PROTOCOL_JOB_STATE_PENDING: printf("CALLBACK %d SUCCESS PENDING\n", jid); if (job_pool.cancel_state[jid] == 1) { globus_gram_client_job_cancel(job_contact); job_pool.cancel_state[jid] = 0; } break; case GLOBUS_GRAM_PROTOCOL_JOB_STATE_SUSPENDED: printf("CALLBACK %d SUCCESS SUSPENDED\n", jid); if (job_pool.cancel_state[jid] == 1) { globus_gram_client_job_cancel(job_contact); job_pool.cancel_state[jid] = 0; } break; case GLOBUS_GRAM_PROTOCOL_JOB_STATE_ACTIVE: printf("CALLBACK %d SUCCESS ACTIVE\n", jid); if (job_pool.cancel_state[jid] == 1) { globus_gram_client_job_cancel(job_contact); job_pool.cancel_state[jid] = 0; } break; case GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED: if (job_info->protocol_error_code == GLOBUS_GRAM_PROTOCOL_ERROR_USER_CANCELLED ) printf("CALLBACK %d SUCCESS FAILED\n", jid); else printf("CALLBACK %d FAILURE %s (error %d)\n", jid, globus_gram_client_error_string(job_info->protocol_error_code), job_info->protocol_error_code); done = 1; job_pool.cancel_state[jid] = 0; break; case GLOBUS_GRAM_PROTOCOL_JOB_STATE_DONE: if (job_info->extensions) { entry = globus_hashtable_lookup(&job_info->extensions, "exit-code"); if (entry != NULL) printf("CALLBACK %d SUCCESS DONE:%s\n", jid, entry->value); else printf("CALLBACK %d SUCCESS DONE\n", jid); } else printf("CALLBACK %d SUCCESS DONE\n", jid); done = 1; job_pool.cancel_state[jid] = 0; break; } if (done && (jid != -1)) del_job(jid); }