X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device-src%2Fxfer-source-recovery.c;fp=device-src%2Fxfer-source-recovery.c;h=f305f0cb7f1e23fd91b2a5f99a6416d78563bcf1;hb=949b8910a5e23c4285d0b1aedacfc82a14dc97a5;hp=16673e0d1932abecda5f1ba130320e81bf797b81;hpb=c6f0a88c567f8536c498f554285aed1f8150da18;p=debian%2Famanda diff --git a/device-src/xfer-source-recovery.c b/device-src/xfer-source-recovery.c index 16673e0..f305f0c 100644 --- a/device-src/xfer-source-recovery.c +++ b/device-src/xfer-source-recovery.c @@ -1,6 +1,6 @@ /* * Amanda, The Advanced Maryland Automatic Network Disk Archiver - * Copyright (c) 2009, 2010 Zmanda, Inc. All Rights Reserved. + * Copyright (c) 2009-2012 Zmanda, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 as published @@ -76,6 +76,9 @@ typedef struct XferSourceRecovery { * part) */ size_t block_size; + /* bytes read for this image */ + guint64 bytes_read; + /* part size (potentially including any zero-padding from the * device) */ guint64 part_size; @@ -426,6 +429,7 @@ pull_buffer_impl( self->paused = TRUE; g_object_unref(self->device); self->device = NULL; + self->bytes_read += self->part_size; self->part_size = 0; self->block_size = 0; if (self->part_timer) { @@ -700,3 +704,17 @@ xfer_source_recovery_use_device( klass = XFER_SOURCE_RECOVERY_GET_CLASS(elt); klass->use_device(XFER_SOURCE_RECOVERY(elt), device); } + +guint64 +xfer_source_recovery_get_bytes_read( + XferElement *elt) +{ + XferSourceRecovery *self = XFER_SOURCE_RECOVERY(elt); + guint64 bytes_read = self->bytes_read; + + if (self->device) + bytes_read += device_get_bytes_read(self->device); + + return bytes_read; +} +