示例#1
0
void
metautils_message_add_url (MESSAGE m, struct oio_url_s *url)
{
	if (!m)
		return;
	for (struct map_s *p = url2msg_map; p->f ;++p) {
		if (oio_url_has (url, p->u)) {
			const char *s = oio_url_get (url, p->u);
			if (!p->avoid || strcmp(p->avoid, s))
				metautils_message_add_field_str(m, p->f, s);
		}
	}

	const guint8 *id = oio_url_get_id (url);
	if (id)
		metautils_message_add_field (m, NAME_MSGKEY_CONTAINERID, id, oio_url_get_id_size (url));
}
示例#2
0
static void
_pack_list_params (MESSAGE msg, struct list_params_s *p)
{
	guint32 flags = 0;
	if (p->flag_allversion)
		flags |= M2V2_FLAG_ALLVERSION;
	if (p->flag_headers)
		flags |= M2V2_FLAG_HEADERS;
	if (p->flag_nodeleted)
		flags |= M2V2_FLAG_NODELETED;
	flags = g_htonl(flags);
	metautils_message_add_field(msg, NAME_MSGKEY_FLAGS, &flags, sizeof(flags));

	metautils_message_add_field_str(msg, NAME_MSGKEY_PREFIX, p->prefix);
	metautils_message_add_field_str(msg, NAME_MSGKEY_MARKER, p->marker_start);
	metautils_message_add_field_str(msg, NAME_MSGKEY_MARKER_END, p->marker_end);
	if (p->maxkeys > 0)
		metautils_message_add_field_strint64(msg, NAME_MSGKEY_MAX_KEYS, p->maxkeys);
}
示例#3
0
GByteArray*
sqlx_pack_QUERY_single(struct sqlx_name_s *name, const gchar *query,
		gboolean autocreate)
{
	EXTRA_ASSERT(name != NULL);
	EXTRA_ASSERT(query != NULL);

	MESSAGE req = make_request(NAME_MSGNAME_SQLX_QUERY, name);
	guint8 ac = (guint8) autocreate;
	do {
		Table_t *t = g_malloc0(sizeof(Table_t));
		OCTET_STRING_fromBuf(&(t->name), query, strlen(query));

		TableSequence_t *ts = g_malloc0(sizeof(TableSequence_t));
		asn_sequence_add(&(ts->list), t);

		metautils_message_add_body_unref(req, sqlx_encode_TableSequence(ts, NULL));
		metautils_message_add_field(req, NAME_MSGKEY_AUTOCREATE, &ac, 1);

		asn_DEF_TableSequence.free_struct(&asn_DEF_TableSequence, ts, FALSE);
	} while (0);

	return message_marshall_gba_and_clean(req);
}
示例#4
0
void
metautils_message_add_cid (MESSAGE m, const char *f, const container_id_t cid)
{
	if (cid)
		metautils_message_add_field (m, f, cid, sizeof(container_id_t));
}
示例#5
0
void
metautils_message_add_field_gba(MESSAGE m, const char *name, GByteArray *gba)
{
	if (gba)
		metautils_message_add_field (m, name, gba->data, gba->len);
}
示例#6
0
void
metautils_message_add_field_str(MESSAGE m, const char *name, const char *value)
{
	if (value)
		metautils_message_add_field (m, name, value, strlen(value));
}