#include <lzma.h>
#include <zlib.h>
+#include <bzlib.h>
#include <gcrypt.h>
#include "macro.h"
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,
IMPORT_JOB_UNCOMPRESSED,
IMPORT_JOB_XZ,
IMPORT_JOB_GZIP,
+ IMPORT_JOB_BZIP2,
_IMPORT_JOB_COMPRESSION_MAX,
_IMPORT_JOB_COMPRESSION_INVALID = -1,
} ImportJobCompression;
void *userdata;
ImportJobFinished on_finished;
ImportJobOpenDisk on_open_disk;
+ ImportJobHeader on_header;
+ ImportJobProgress on_progress;
CurlGlue *glue;
CURL *curl;
ImportJobCompression compressed;
lzma_stream xz;
z_stream gzip;
+ bz_stream bzip2;
unsigned progress_percent;
usec_t start_usec;