sd-event: allow naming event sources

This commit is contained in:
Tom Gundersen
2014-08-28 21:19:17 +02:00
parent 5968b1c304
commit f7f53e9e6e
3 changed files with 33 additions and 0 deletions
+2
View File
@@ -382,6 +382,8 @@ global:
sd_event_get_watchdog;
sd_event_source_ref;
sd_event_source_unref;
sd_event_source_set_name;
sd_event_source_get_name;
sd_event_source_set_prepare;
sd_event_source_get_pending;
sd_event_source_get_priority;
+29
View File
@@ -66,6 +66,8 @@ struct sd_event_source {
void *userdata;
sd_event_handler_t prepare;
char *name;
EventSourceType type:5;
int enabled:3;
bool pending:1;
@@ -685,6 +687,7 @@ static void source_free(sd_event_source *s) {
assert(s);
source_disconnect(s);
free(s->name);
free(s);
}
@@ -1223,6 +1226,32 @@ _public_ sd_event_source* sd_event_source_unref(sd_event_source *s) {
return NULL;
}
_public_ int sd_event_source_set_name(sd_event_source *s, const char *name) {
char *new_name = NULL;
assert_return(s, -EINVAL);
if (name) {
new_name = strdup(name);
if (!new_name)
return -ENOMEM;
}
free(s->name);
s->name = new_name;
return 0;
}
_public_ int sd_event_source_get_name(sd_event_source *s, const char **name) {
assert_return(s, -EINVAL);
assert_return(name, -EINVAL);
*name = s->name;
return 0;
}
_public_ sd_event *sd_event_source_get_event(sd_event_source *s) {
assert_return(s, NULL);
+2
View File
@@ -109,6 +109,8 @@ sd_event *sd_event_source_get_event(sd_event_source *s);
void* sd_event_source_get_userdata(sd_event_source *s);
void* sd_event_source_set_userdata(sd_event_source *s, void *userdata);
int sd_event_source_set_name(sd_event_source *s, const char *name);
int sd_event_source_get_name(sd_event_source *s, const char **name);
int sd_event_source_set_prepare(sd_event_source *s, sd_event_handler_t callback);
int sd_event_source_get_pending(sd_event_source *s);
int sd_event_source_get_priority(sd_event_source *s, int64_t *priority);