Example #1
0
static gint
do_queryv(struct meta1_service_url_s *surl)
{
	gint rc;
	gchar **pq;
	struct gridd_client_s *client;

	GRID_DEBUG("Contacting SHARD[%"G_GINT64_FORMAT"] at [%s][%s]",
			surl->seq, surl->host, surl->args);

	client = gridd_client_create_idle(surl->host);
	gridd_client_set_keepalive(client, TRUE);
	gridd_client_start(client);

	rc = 1;
	for (pq=query; *pq ;pq++) {
		if (!do_query(client, surl, *pq)) {
			rc = 0;
			break;
		}
	}

	gridd_client_free(client);
	return rc;
}
struct gridd_client_s *
gridd_client_create(const gchar *target, GByteArray *req, gpointer ctx,
                client_on_reply cb)
{
	EXTRA_ASSERT(req != NULL);

	struct gridd_client_s *client = gridd_client_create_idle(target);
	if (!client)
		return NULL;
	GError *err = gridd_client_request(client, req, ctx, cb);
	if (NULL == err)
		return client;

	GRID_WARN("gridd client creation error : (%d) %s", err->code, err->message);
	g_clear_error(&err);
	gridd_client_free(client);
	return NULL;
}
Example #3
0
			}
			return TRUE;
		}
		else {
			GRID_DEBUG("Callback error : %s", e->message);
			err = e;
			return FALSE;
		}
	}

	EXTRA_ASSERT(url != NULL);
	EXTRA_ASSERT(req != NULL);

	gscstat_tags_start(GSCSTAT_SERVICE_META2, GSCSTAT_TAGS_REQPROCTIME);

	client = gridd_client_create_idle(url);
	if (!client)
		err = NEWERROR(2, "errno=%d %s", errno, strerror(errno));
	else {
		if ((timeout_to_step >= 0)&&(timeout_to_overall>=0))
			gridd_client_set_timeout(client, timeout_to_step, timeout_to_overall);

		if (!gridd_client_start(client))
			err = gridd_client_error(client);
		if (!err)
			err = gridd_client_request(client, req, out, out ? _cb : NULL);
		if (!err) {
			if (!(err = gridd_client_loop(client))) {
				err = gridd_client_error(client);
			}
		}
Example #4
0
			for (gchar **n=names ; n && *n ;++n) {
				if (!g_str_has_prefix (*n, NAME_MSGKEY_PREFIX_PROPERTY))
					continue;
				g_tree_replace (props,
						g_strdup((*n) + sizeof(NAME_MSGKEY_PREFIX_PROPERTY) - 1),
						metautils_message_extract_string_copy(reply, *n));
			}
			if (names) g_strfreev (names);
		}

		return TRUE;
	}

	EXTRA_ASSERT(target != NULL);

	struct gridd_client_s *client = gridd_client_create_idle(target);
	if (!client)
		err = NEWERROR(2, "errno=%d %s", errno, strerror(errno));
	if (!err)
		err = gridd_client_request(client, request, props, out ? _cb : NULL);
	if (!err) {
		if (out_properties)
			props = g_tree_new_full (metautils_strcmp3, NULL, g_free, g_free);
		err = gridd_client_run (client);
	}
	if (!err && out_properties && props) {
		gboolean _run (gchar *k, gchar *v, GPtrArray *tmp) {
			g_ptr_array_add (tmp, g_strdup(k));
			g_ptr_array_add (tmp, g_strdup(v));
			return FALSE;
		}