X-Git-Url: http://git.tuebingen.mpg.de/?p=dss.git;a=blobdiff_plain;f=snap.h;h=eca484a462b6d3ad77c23d75d5b0518058dd5057;hp=afac5e9554ab6eae991e796bbf386bddb82d8540;hb=442d1920cb866fb6e0a816d7e175b5cdb8c0e1a8;hpb=551ae2318396d9f1ee0a00bed2b94f0b9c9e9c55 diff --git a/snap.h b/snap.h index afac5e9..eca484a 100644 --- a/snap.h +++ b/snap.h @@ -4,22 +4,22 @@ * Licensed under the GPL v2. For licencing details see COPYING. */ -/** The state of snapshot creation. */ -enum { +/** The possible states for snapshot creation/removal. */ +enum hook_status { /** We are ready to take the next snapshot. */ - SCS_READY, - /** The pre-creation hook has been started. */ - SCS_PRE_HOOK_RUNNING, - /** The pre-creation hook exited successfully. */ - SCS_PRE_HOOK_SUCCESS, - /** The rsync process is running. */ - SCS_RSYNC_RUNNING, - /** The rsync process exited successfully. */ - SCS_RSYNC_SUCCESS, - /** The rsync process needs to be restarted. */ - SCS_RSYNC_NEEDS_RESTART, - /** The post-create hook has been started. */ - SCS_POST_HOOK_RUNNING, + HS_READY, + /** The pre-create/pre-remove hook has been started. */ + HS_PRE_RUNNING, + /** The pre-create/pre-remove hook exited successfully. */ + HS_PRE_SUCCESS, + /** The rsync/rm process is running. */ + HS_RUNNING, + /** The rsync/rm process exited successfully. */ + HS_SUCCESS, + /** The rsync/rm process needs to be restarted. */ + HS_NEEDS_RESTART, + /** The post-create/post-remove hook has been started. */ + HS_POST_RUNNING, }; /** @@ -98,3 +98,13 @@ _static_inline_ struct snapshot *get_oldest_snapshot(struct snapshot_list *sl) return NULL; return sl->snapshots[0]; } + +/** + * Get the newest snapshot in a snapshot list. + */ +_static_inline_ struct snapshot *get_newest_snapshot(struct snapshot_list *sl) +{ + if (!sl->num_snapshots) + return NULL; + return sl->snapshots[sl->num_snapshots - 1]; +}