X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fimport%2Fimport-job.h;h=dcf89cb28c45314a92879b4df88ef546770e1405;hb=6cb8e687f038424ef54b5c5c3c433be974fbe371;hp=a9b58e6339ec6fe8e6cee222fbe33ebed5d7fac1;hpb=98c3800184cfc961b19d605f69d555d0cea8bb7a;p=elogind.git diff --git a/src/import/import-job.h b/src/import/import-job.h index a9b58e633..dcf89cb28 100644 --- a/src/import/import-job.h +++ b/src/import/import-job.h @@ -23,6 +23,7 @@ #include #include +#include #include #include "macro.h" @@ -32,6 +33,8 @@ typedef struct ImportJob ImportJob; typedef void (*ImportJobFinished)(ImportJob *job); typedef int (*ImportJobOpenDisk)(ImportJob *job); +typedef int (*ImportJobHeader)(ImportJob *job, const char *header, size_t sz); +typedef void (*ImportJobProgress)(ImportJob *job); typedef enum ImportJobState { IMPORT_JOB_INIT, @@ -49,6 +52,7 @@ typedef enum ImportJobCompression { IMPORT_JOB_UNCOMPRESSED, IMPORT_JOB_XZ, IMPORT_JOB_GZIP, + IMPORT_JOB_BZIP2, _IMPORT_JOB_COMPRESSION_MAX, _IMPORT_JOB_COMPRESSION_INVALID = -1, } ImportJobCompression; @@ -62,6 +66,8 @@ struct ImportJob { void *userdata; ImportJobFinished on_finished; ImportJobOpenDisk on_open_disk; + ImportJobHeader on_header; + ImportJobProgress on_progress; CurlGlue *glue; CURL *curl; @@ -89,6 +95,7 @@ struct ImportJob { ImportJobCompression compressed; lzma_stream xz; z_stream gzip; + bz_stream bzip2; unsigned progress_percent; usec_t start_usec;