summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2012-05-31 16:38:12 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2012-05-31 16:38:12 +0200
commit01e95f4f8601d7fef228fb61c74cdb95d37acb29 (patch)
tree59eee049cde0b5da21557e1781e33819f115f7e9
parent047577a3e1837bf34f40ca6e1c8e0401f068a41d (diff)
downloadedoors-01e95f4f8601d7fef228fb61c74cdb95d37acb29.zip
edoors-01e95f4f8601d7fef228fb61c74cdb95d37acb29.tar.gz
Particle : add eiotas_particle_data_del
-rw-r--r--src/include/eiotas_particle.h10
-rw-r--r--src/lib/eiotas_particle.c12
2 files changed, 22 insertions, 0 deletions
diff --git a/src/include/eiotas_particle.h b/src/include/eiotas_particle.h
index b752928..26489aa 100644
--- a/src/include/eiotas_particle.h
+++ b/src/include/eiotas_particle.h
@@ -137,6 +137,16 @@ EAPI const char* eiotas_particle_data_get(Eiotas_Particle *particle, const char
EAPI Eina_Bool eiotas_particle_data_set(Eiotas_Particle *particle, const char *key, const char *value);
/**
+ * @brief Delete the data associated to a given key
+ *
+ * @param particle The @ref Eiotas_Particle to delete data from
+ * @param key The @ref Eina_Hash key
+ *
+ * @return @ref EINA_FALSE if an error occurred, @ref EINA_TRUE otherwise.
+ */
+EAPI Eina_Bool eiotas_particle_data_del(Eiotas_Particle *particle, const char *key);
+
+/**
* @}
*/
diff --git a/src/lib/eiotas_particle.c b/src/lib/eiotas_particle.c
index 38fc263..cf92aaa 100644
--- a/src/lib/eiotas_particle.c
+++ b/src/lib/eiotas_particle.c
@@ -165,6 +165,18 @@ EAPI Eina_Bool eiotas_particle_data_set(Eiotas_Particle *particle, const char* k
return EINA_TRUE;
}
+EAPI Eina_Bool eiotas_particle_data_del(Eiotas_Particle *particle, const char* key)
+{
+ unsigned int i;
+ Eina_Stringshare *s;
+ Eina_Array_Iterator it;
+
+ if(!eina_hash_del(particle->payload,key,NULL)) return EINA_FALSE;
+ update_link_value(particle,key);
+
+ return EINA_TRUE;
+}
+
static void update_link_value(Eiotas_Particle *particle, const char *field)
{
unsigned int i;