LCOV - code coverage report
Current view: top level - import - pull-job.h (source / functions) Hit Total Coverage
Test: systemd_full.info Lines: 0 1 0.0 %
Date: 2019-08-23 13:36:53 Functions: 0 1 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 2 0.0 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: LGPL-2.1+ */
       2                 :            : #pragma once
       3                 :            : 
       4                 :            : #include <gcrypt.h>
       5                 :            : 
       6                 :            : #include "curl-util.h"
       7                 :            : #include "import-compress.h"
       8                 :            : #include "macro.h"
       9                 :            : 
      10                 :            : typedef struct PullJob PullJob;
      11                 :            : 
      12                 :            : typedef void (*PullJobFinished)(PullJob *job);
      13                 :            : typedef int (*PullJobOpenDisk)(PullJob *job);
      14                 :            : typedef int (*PullJobHeader)(PullJob *job, const char *header, size_t sz);
      15                 :            : typedef void (*PullJobProgress)(PullJob *job);
      16                 :            : 
      17                 :            : typedef enum PullJobState {
      18                 :            :         PULL_JOB_INIT,
      19                 :            :         PULL_JOB_ANALYZING, /* Still reading into ->payload, to figure out what we have */
      20                 :            :         PULL_JOB_RUNNING,  /* Writing to destination */
      21                 :            :         PULL_JOB_DONE,
      22                 :            :         PULL_JOB_FAILED,
      23                 :            :         _PULL_JOB_STATE_MAX,
      24                 :            :         _PULL_JOB_STATE_INVALID = -1,
      25                 :            : } PullJobState;
      26                 :            : 
      27                 :            : typedef enum VerificationStyle {
      28                 :            :         VERIFICATION_STYLE_UNSET,
      29                 :            :         VERIFICATION_PER_FILE,        /* SuSE-style ".sha256" files with inline signature */
      30                 :            :         VERIFICATION_PER_DIRECTORY,   /* Ubuntu-style SHA256SUM files with detach SHA256SUM.gpg signatures */
      31                 :            : } VerificationStyle;
      32                 :            : 
      33                 :            : #define PULL_JOB_IS_COMPLETE(j) (IN_SET((j)->state, PULL_JOB_DONE, PULL_JOB_FAILED))
      34                 :            : 
      35                 :            : struct PullJob {
      36                 :            :         PullJobState state;
      37                 :            :         int error;
      38                 :            : 
      39                 :            :         char *url;
      40                 :            : 
      41                 :            :         void *userdata;
      42                 :            :         PullJobFinished on_finished;
      43                 :            :         PullJobOpenDisk on_open_disk;
      44                 :            :         PullJobHeader on_header;
      45                 :            :         PullJobProgress on_progress;
      46                 :            : 
      47                 :            :         CurlGlue *glue;
      48                 :            :         CURL *curl;
      49                 :            :         struct curl_slist *request_header;
      50                 :            : 
      51                 :            :         char *etag;
      52                 :            :         char **old_etags;
      53                 :            :         bool etag_exists;
      54                 :            : 
      55                 :            :         uint64_t content_length;
      56                 :            :         uint64_t written_compressed;
      57                 :            :         uint64_t written_uncompressed;
      58                 :            : 
      59                 :            :         uint64_t uncompressed_max;
      60                 :            :         uint64_t compressed_max;
      61                 :            : 
      62                 :            :         uint8_t *payload;
      63                 :            :         size_t payload_size;
      64                 :            :         size_t payload_allocated;
      65                 :            : 
      66                 :            :         int disk_fd;
      67                 :            : 
      68                 :            :         usec_t mtime;
      69                 :            : 
      70                 :            :         ImportCompress compress;
      71                 :            : 
      72                 :            :         unsigned progress_percent;
      73                 :            :         usec_t start_usec;
      74                 :            :         usec_t last_status_usec;
      75                 :            : 
      76                 :            :         bool allow_sparse;
      77                 :            : 
      78                 :            :         bool calc_checksum;
      79                 :            :         gcry_md_hd_t checksum_context;
      80                 :            : 
      81                 :            :         char *checksum;
      82                 :            : 
      83                 :            :         VerificationStyle style;
      84                 :            : };
      85                 :            : 
      86                 :            : int pull_job_new(PullJob **job, const char *url, CurlGlue *glue, void *userdata);
      87                 :            : PullJob* pull_job_unref(PullJob *job);
      88                 :            : 
      89                 :            : int pull_job_begin(PullJob *j);
      90                 :            : 
      91                 :            : void pull_job_curl_on_finished(CurlGlue *g, CURL *curl, CURLcode result);
      92                 :            : 
      93         [ #  # ]:          0 : DEFINE_TRIVIAL_CLEANUP_FUNC(PullJob*, pull_job_unref);

Generated by: LCOV version 1.14