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)); }
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); }
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); }
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)); }
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); }
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)); }