# HG changeset patch # User Tero Marttila # Date 1262025813 -7200 # Node ID 4b440fa03183fd43ed5c14b5afd06b0a4a9d5b03 # Parent 49362b34116cd4107f8af43784a53f2b722a731b move stale-update logic to main diff -r 49362b34116c -r 4b440fa03183 src/lib/image.c --- a/src/lib/image.c Mon Dec 28 20:36:29 2009 +0200 +++ b/src/lib/image.c Mon Dec 28 20:43:33 2009 +0200 @@ -145,7 +145,6 @@ { struct pt_image *image; char cache_path[_POSIX_PATH_MAX]; - int stale; // XXX: verify that the path exists and looks like a PNG file @@ -161,17 +160,6 @@ if (pt_cache_open(&image->cache, cache_path, cache_mode)) goto error; - // compare cache with image - // XXX: check cache_mode - if ((stale = pt_cache_stale(image->cache, image->path)) < 0) - goto error; - - // update if not fresh - if (stale) { - if (pt_image_update_cache(image)) - goto error; - } - // ok, ready for access *image_ptr = image; @@ -183,6 +171,17 @@ return -1; } +int pt_image_stale (struct pt_image *image) +{ + return pt_cache_stale(image->cache, image->path); +} + +int pt_image_update (struct pt_image *image) +{ + return pt_image_update_cache(image); +} + + void pt_image_destroy (struct pt_image *image) { free(image->path); diff -r 49362b34116c -r 4b440fa03183 src/lib/pngtile.h --- a/src/lib/pngtile.h Mon Dec 28 20:36:29 2009 +0200 +++ b/src/lib/pngtile.h Mon Dec 28 20:43:33 2009 +0200 @@ -33,8 +33,16 @@ * @param path filesystem path to .png file * @param mode combination of PT_IMG_* flags */ -int pt_image_open (struct pt_image **img_ptr, struct pt_ctx *ctx, const char *png_path, int cache_mode); +int pt_image_open (struct pt_image **image_ptr, struct pt_ctx *ctx, const char *png_path, int cache_mode); +/** + * Check the given image's cache is stale - in other words, the image needs to be updated. + */ +int pt_image_stale (struct pt_image *image); +/** + * Update the given image's cache. + */ +int pt_image_update (struct pt_image *image); #endif diff -r 49362b34116c -r 4b440fa03183 src/util/main.c --- a/src/util/main.c Mon Dec 28 20:36:29 2009 +0200 +++ b/src/util/main.c Mon Dec 28 20:43:33 2009 +0200 @@ -77,25 +77,46 @@ struct pt_ctx *ctx = NULL; - struct pt_image *image = NULL;; + struct pt_image *image = NULL; + int ret; log_debug("Processing %d images...", argc - optind); for (int i = optind; i < argc; i++) { const char *img_path = argv[i]; - log_debug("Load image from: %s", img_path); + log_debug("Loading image from: %s...", img_path); // open if (pt_image_open(&image, ctx, img_path, PT_IMG_READ | PT_IMG_WRITE)) { log_errno("pt_image_open: %s", img_path); - continue; + } - } else { - log_info("Opened image at: %s", img_path); + log_info("Opened image at: %s", img_path); + + // check if stale + if ((ret = pt_image_stale(image)) < 0) { + log_errno("pt_image_stale: %s", img_path); + goto error; + } + + // update if stale + if (ret) { + log_info("Image cache is stale, updating..."); + if (pt_image_update(image)) { + log_warn_errno("pt_image_update: %s", img_path); + } + + log_debug("Image cache updated"); } + + // done + +error: + // cleanup + pt_image_destroy(image); } // XXX: done