Exemple #1
0
JsonNode*
cometd_msg_extract_connect(JsonNode* payload)
{
    JsonNode* connect = NULL;
    JsonArray* arr = json_node_get_array(payload);
    GList* msgs = json_array_get_elements(arr);

    gint i;
    gint index = -1;

    GList* item;

    for (i = 0, item = msgs; item; item = g_list_next(item), ++i)
    {
        JsonNode* msg = item->data;
        char* channel = cometd_msg_channel(msg);

        if (strcmp(COMETD_CHANNEL_META_CONNECT, channel) == 0)
            index = i;

        free(channel);
    }

    if (index > -1)
    {
        connect = json_array_dup_element(arr, index);
        json_array_remove_element(arr, index);
    }

    g_list_free(msgs);

    return connect;
}
void trg_prefs_del_profile(TrgPrefs * p, JsonObject * profile)
{
    JsonArray *profiles = trg_prefs_get_profiles(p);
    GList *profilesList = json_array_get_elements(profiles);

    GList *li;
    JsonNode *node;
    int i = 0;

    for (li = profilesList; li; li = g_list_next(li)) {
        node = (JsonNode *) li->data;
        if (profile == json_node_get_object(node)) {
            json_array_remove_element(profiles, i);
            break;
        }
        i++;
    }

    g_list_free(profilesList);

    trg_prefs_profile_change_emit_signal(p);
}