コード例 #1
0
ファイル: session.c プロジェクト: dmp0x7c5/test-repo
static DBusMessage *session_get_properties(DBusConnection *connection,
				DBusMessage *message, void *user_data)
{
	struct obc_session *session = user_data;
	DBusMessage *reply;
	DBusMessageIter iter, dict;

	reply = dbus_message_new_method_return(message);
	if (!reply)
		return NULL;

	dbus_message_iter_init_append(reply, &iter);

	dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
			DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING
			DBUS_TYPE_STRING_AS_STRING DBUS_TYPE_VARIANT_AS_STRING
			DBUS_DICT_ENTRY_END_CHAR_AS_STRING, &dict);

	if (session->source != NULL)
		obex_dbus_dict_append(&dict, "Source", DBUS_TYPE_STRING,
							&session->source);

	obex_dbus_dict_append(&dict, "Destination", DBUS_TYPE_STRING,
							&session->destination);

	obex_dbus_dict_append(&dict, "Channel", DBUS_TYPE_BYTE,
							&session->channel);

	dbus_message_iter_close_container(&iter, &dict);

	return reply;
}
コード例 #2
0
ファイル: map.c プロジェクト: alvarofagner/bluez
static void parse_attachment_size(struct map_msg *msg, const char *value,
							DBusMessageIter *iter)
{
	msg->attachment_size = g_ascii_strtoll(value, NULL, 10);
	obex_dbus_dict_append(iter, "AttachmentSize", DBUS_TYPE_UINT64,
							&msg->attachment_size);
}
コード例 #3
0
ファイル: map.c プロジェクト: alvarofagner/bluez
static void parse_status(struct map_msg *msg, const char *value,
							DBusMessageIter *iter)
{
	g_free(msg->status);
	msg->status = g_strdup(value);
	obex_dbus_dict_append(iter, "Status", DBUS_TYPE_STRING, &value);
}
コード例 #4
0
ファイル: map.c プロジェクト: alvarofagner/bluez
static void parse_recipient(struct map_msg *msg, const char *value,
							DBusMessageIter *iter)
{
	g_free(msg->recipient);
	msg->recipient = g_strdup(value);
	obex_dbus_dict_append(iter, "Recipient", DBUS_TYPE_STRING, &value);
}
コード例 #5
0
ファイル: map.c プロジェクト: alvarofagner/bluez
static void parse_datetime(struct map_msg *msg, const char *value,
							DBusMessageIter *iter)
{
	g_free(msg->timestamp);
	msg->timestamp = g_strdup(value);
	obex_dbus_dict_append(iter, "Timestamp", DBUS_TYPE_STRING, &value);
}
コード例 #6
0
ファイル: map.c プロジェクト: alvarofagner/bluez
static void parse_protected(struct map_msg *msg, const char *value,
							DBusMessageIter *iter)
{
	gboolean flag = strcasecmp(value, "no") != 0;

	if (flag)
		msg->flags |= MAP_MSG_FLAG_PROTECTED;
	else
		msg->flags &= ~MAP_MSG_FLAG_PROTECTED;

	obex_dbus_dict_append(iter, "Protected", DBUS_TYPE_BOOLEAN, &flag);
}
コード例 #7
0
ファイル: map.c プロジェクト: alvarofagner/bluez
static void folder_element(GMarkupParseContext *ctxt, const char *element,
				const char **names, const char **values,
				gpointer user_data, GError **gerr)
{
	DBusMessageIter dict, *iter = user_data;
	const char *key;
	gint i;

	if (strcasecmp("folder", element) != 0)
		return;

	dbus_message_iter_open_container(iter, DBUS_TYPE_ARRAY,
			DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING
			DBUS_TYPE_STRING_AS_STRING DBUS_TYPE_VARIANT_AS_STRING
			DBUS_DICT_ENTRY_END_CHAR_AS_STRING, &dict);

	for (i = 0, key = names[i]; key; key = names[++i]) {
		if (strcasecmp("name", key) == 0)
			obex_dbus_dict_append(&dict, "Name", DBUS_TYPE_STRING,
								&values[i]);
	}

	dbus_message_iter_close_container(iter, &dict);
}