neard: Add dbus Getproperty for read only flag
authorOlivier Guiter <olivier.guiter@linux.intel.com>
Tue, 8 Nov 2011 10:21:10 +0000 (11:21 +0100)
committerSamuel Ortiz <sameo@linux.intel.com>
Wed, 9 Nov 2011 15:45:11 +0000 (16:45 +0100)
src/near.h
src/tag.c
src/target.c

index 7cbcdee..44e9bf6 100644 (file)
@@ -113,6 +113,7 @@ char *__near_ndef_record_get_path(struct near_ndef_record *record);
 #include <near/tag.h>
 
 void __near_tag_append_records(struct near_tag *tag, DBusMessageIter *iter);
+near_bool_t __near_tag_get_ro(struct near_tag *tag);
 uint32_t __near_tag_n_records(struct near_tag *tag);
 int __near_tag_add_record(struct near_tag *tag, struct near_ndef_record *record);
 struct near_tag *__near_tag_new(uint32_t adapter_idx, uint32_t target_idx,
index 31f9eb4..6130676 100644 (file)
--- a/src/tag.c
+++ b/src/tag.c
@@ -78,6 +78,7 @@ static int tag_initialize(struct near_tag *tag,
        tag->adapter_idx = adapter_idx;
        tag->target_idx = target_idx;
        tag->n_records = 0;
+       tag->readonly = 0;
 
        if (data_length > 0) {
                tag->data_length = data_length;
@@ -154,6 +155,11 @@ int near_tag_set_ro(struct near_tag *tag, near_bool_t readonly)
        return 0;
 }
 
+near_bool_t __near_tag_get_ro(struct near_tag *tag)
+{
+       return tag->readonly;
+}
+
 uint8_t *near_tag_get_data(struct near_tag *tag, size_t *data_length)
 {
        if (data_length == NULL)
index 7af7a3f..0665152 100644 (file)
@@ -209,6 +209,7 @@ static DBusMessage *get_properties(DBusConnection *conn,
        struct near_target *target = data;
        DBusMessage *reply;
        DBusMessageIter array, dict;
+       near_bool_t ronly;
        const char *type;
 
        DBG("conn %p", conn);
@@ -236,6 +237,12 @@ static DBusMessage *get_properties(DBusConnection *conn,
 
                near_dbus_dict_append_array(&dict, "Records",
                                DBUS_TYPE_OBJECT_PATH, append_records, target);
+
+               if (target->tag != NULL) {
+                       ronly = __near_tag_get_ro(target->tag);
+                       near_dbus_dict_append_basic(&dict, "ReadOnly",
+                                       DBUS_TYPE_BOOLEAN, &ronly);
+               }
        }
 
        near_dbus_dict_close(&array, &dict);