char **out, size_t *outlen, size_t *outprespace)
{
CamelMimeFilterProgress *progress = (CamelMimeFilterProgress *) filter;
- CamelOperation *operation;
double percent;
progress->count += len;
- if ((operation = camel_operation_registered ())) {
- if (progress->count < progress->total)
- percent = ((double) progress->count * 100.0) / ((double) progress->total);
- else
- percent = 100.0;
-
- camel_operation_progress (operation, (int) percent);
- }
+ if (progress->count < progress->total)
+ percent = ((double) progress->count * 100.0) / ((double) progress->total);
+ else
+ percent = 100.0;
+
+ camel_operation_progress (progress->operation, (int) percent);
*outprespace = prespace;
*outlen = len;
/**
* camel_mime_filter_progress_new:
+ * @operation: a #CamelOperation
* @total: total number of bytes to report progress on
*
* Create a new #CamelMimeFilterProgress object that will report
* Returns a new #CamelMimeFilter object
**/
CamelMimeFilter *
-camel_mime_filter_progress_new (guint32 total)
+camel_mime_filter_progress_new (CamelOperation *operation, size_t total)
{
CamelMimeFilter *filter;
filter = (CamelMimeFilter *) camel_object_new (camel_mime_filter_progress_get_type ());
+ ((CamelMimeFilterProgress *) filter)->operation = operation;
((CamelMimeFilterProgress *) filter)->total = total;
return filter;
#ifndef __CAMEL_MIME_FILTER_PROGRESS_H__
#define __CAMEL_MIME_FILTER_PROGRESS_H__
+#include <camel/camel-operation.h>
#include <camel/camel-mime-filter.h>
#define CAMEL_MIME_FILTER_PROGRESS(obj) CAMEL_CHECK_CAST (obj, camel_mime_filter_progress_get_type (), CamelMimeFilterProgress)
struct _CamelMimeFilterProgress {
CamelMimeFilter parent;
- guint32 total;
- guint32 count;
+ CamelOperation *operation;
+ size_t total;
+ size_t count;
};
struct _CamelMimeFilterProgressClass {
CamelType camel_mime_filter_progress_get_type (void);
-CamelMimeFilter *camel_mime_filter_progress_new (guint32 total);
+CamelMimeFilter *camel_mime_filter_progress_new (CamelOperation *operation, size_t total);
G_END_DECLS
CamelStreamClass parent_class;
};
-CamelType camel_stream_null_get_type (void);
+CamelType camel_stream_null_get_type (void);
-CamelStream *camel_stream_null_new (void);
+CamelStream *camel_stream_null_new (void);
G_END_DECLS