diff options
| author | Daniel Stenberg <daniel@haxx.se> | 2000-06-16 13:15:36 +0000 | 
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2000-06-16 13:15:36 +0000 | 
| commit | 435f17195e6111a0689b98026bde95f67d29def0 (patch) | |
| tree | efc79cddbfabfae4d9826bb318e6c5f2cce01394 /lib | |
| parent | 8e8da82178220d98fb34ac1f6051e6aa031d7317 (diff) | |
removed lots of #if 0'ed code
removed the "mode" concept
moved all #-stuff to the client
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/progress.c | 256 | 
1 files changed, 12 insertions, 244 deletions
| diff --git a/lib/progress.c b/lib/progress.c index b2372aa53..f34f9d087 100644 --- a/lib/progress.c +++ b/lib/progress.c @@ -57,6 +57,7 @@  #include <curl/curl.h>  #include "urldata.h" +#include "sendf.h"  #include "progress.h" @@ -97,7 +98,6 @@ char *max5data(double bytes, char *max5)     New proposed interface, 9th of February 2000:     pgrsStartNow() - sets start time -   pgrsMode(type) - kind of display     pgrsSetDownloadSize(x) - known expected download size     pgrsSetUploadSize(x) - known expected upload size     pgrsSetDownloadCounter() - amount of data currently downloaded @@ -106,7 +106,7 @@ char *max5data(double bytes, char *max5)     pgrsDone() - transfer complete  */ -#if 1 +  void pgrsDone(struct UrlData *data)  {    if(!(data->progress.flags & PGRS_HIDE)) { @@ -115,16 +115,6 @@ void pgrsDone(struct UrlData *data)      fprintf(stderr, "\n");    }  } -void pgrsMode(struct UrlData *data, int mode) -{ -  /* mode should include a hidden mode as well */ -  if(data->bits.hide_progress || data->bits.mute) -    data->progress.flags |= PGRS_HIDE; /* don't show anything */ -  else { -    data->progress.mode = mode; /* store type */ -  } - -}  void pgrsTime(struct UrlData *data, timerid timer)  { @@ -190,6 +180,7 @@ void pgrsSetUploadSize(struct UrlData *data, double size)  int pgrsUpdate(struct UrlData *data)  {    struct timeval now; +  int result;    char max5[6][6];    double dlpercen=0; @@ -222,7 +213,7 @@ int pgrsUpdate(struct UrlData *data)           this is were lots of the calculations are being made that will be used           even when not displayed! */    else if(!(data->progress.flags & PGRS_HEADERS_OUT)) { -    if ( data->progress.mode == CURL_PROGRESS_STATS ) { +    if (!data->progress.callback) {        fprintf(data->err,                "  %% Total    %% Received %% Xferd  Average Speed          Time             Curr.\n"                "                                 Dload  Upload Total    Current  Left    Speed\n"); @@ -262,11 +253,14 @@ int pgrsUpdate(struct UrlData *data)    if(data->progress.flags & PGRS_HIDE)      return 0;    else if(data->fprogress) { -    return data->fprogress(data->progress_client, -                           data->progress.size_dl, -                           data->progress.downloaded, -                           data->progress.size_ul, -                           data->progress.uploaded); +    result= data->fprogress(data->progress_client, +                            data->progress.size_dl, +                            data->progress.downloaded, +                            data->progress.size_ul, +                            data->progress.uploaded); +    if(result) +      failf(data, "Callback aborted"); +    return result;    }        /* Figure out the estimated time of arrival for the upload */ @@ -334,231 +328,5 @@ int pgrsUpdate(struct UrlData *data)            max5data(data->progress.current_speed, max5[5]) /* current speed */            ); - -#if 0 -  case CURL_PROGRESS_BAR: -    /* original progress bar code by Lars Aas */ -    if (progressmax == -1) { -      int prevblock = prev / 1024; -      int thisblock = point / 1024; -      while ( thisblock > prevblock ) { -        fprintf( data->err, "#" ); -        prevblock++; -      } -        prev = point; -    } -    else { -      char line[256]; -      char outline[256]; -      char format[40]; -      float frac = (float) point / (float) progressmax; -      float percent = frac * 100.0f; -      int barwidth = width - 7; -      int num = (int) (((float)barwidth) * frac); -        int i = 0; -        for ( i = 0; i < num; i++ ) { -          line[i] = '#'; -        } -        line[i] = '\0'; -        sprintf( format, "%%-%ds %%5.1f%%%%", barwidth ); -        sprintf( outline, format, line, percent ); -        fprintf( data->err, "\r%s", outline ); -    } -    prev = point; -    break; -#endif -      return 0;  } - - -#endif - -#if 0 -/* --- start of (the former) progress routines --- */ -int progressmax=-1; - -static int prev = 0; -static int width = 0; - -void ProgressInit(struct UrlData *data, int max/*, int options, int moremax*/) -{ -#ifdef __EMX__ -  /* 20000318 mgs */ -  int scr_size [2]; -#endif -  char *colp; - -  if(data->conf&(CONF_NOPROGRESS|CONF_MUTE)) -    return; - -  prev = 0; - -/* TODO: get terminal width through ansi escapes or something similar. -         try to update width when xterm is resized... - 19990617 larsa */ -#ifndef __EMX__ -  /* 20000318 mgs -   * OS/2 users most likely won't have this env var set, and besides that -   * we're using our own way to determine screen width */ -  colp = curl_GetEnv("COLUMNS"); -  if (colp != NULL) { -    width = atoi(colp); -    free(colp); -  } -  else -    width = 79; -#else -  /* 20000318 mgs -   * We use this emx library call to get the screen width, and subtract -   * one from what we got in order to avoid a problem with the cursor -   * advancing to the next line if we print a string that is as long as -   * the screen is wide. */ -  -  _scrsize(scr_size); -  width = scr_size[0] - 1; -#endif - - -  progressmax = max; -  if(-1 == max) -    return; -  if(progressmax <= LEAST_SIZE_PROGRESS) { -    progressmax = -1; /* disable */ -    return; -  } - -  if ( data->progressmode == CURL_PROGRESS_STATS ) -    fprintf(data->err, -            "  %%   Received    Total    Speed  Estimated   Time      Left   Curr.Speed\n"); - -} - -void ProgressShow(struct UrlData *data, -                  int point, struct timeval start, struct timeval now, bool force) -{ -  switch ( data->progressmode ) { -  case CURL_PROGRESS_STATS: -    { -      static long lastshow; -      double percen; - -      double spent; -      double speed; - -#define CURR_TIME 5 - -      static int speeder[ CURR_TIME ]; -      static int speeder_c=0; - -      int nowindex = speeder_c% CURR_TIME; -      int checkindex; -      int count; - -      if(!force && (point != progressmax) && (lastshow == tvlong(now))) -        return; /* never update this more than once a second if the end isn't  -                   reached */ - -      spent = tvdiff (now, start); -      speed = point/(spent!=0.0?spent:1.0); -      if(!speed) -        speed=1; - -      /* point is where we are right now */ -      speeder[ nowindex ] = point; -      speeder_c++; /* increase */ -      count = ((speeder_c>=CURR_TIME)?CURR_TIME:speeder_c) - 1; -      checkindex = (speeder_c>=CURR_TIME)?speeder_c%CURR_TIME:0; - -      /* find out the average speed the last CURR_TIME seconds */ -      data->current_speed = (speeder[nowindex]-speeder[checkindex])/(count?count:1); - -#if 0 -      printf("NOW %d(%d) THEN %d(%d) DIFF %lf COUNT %d\n", -	     speeder[nowindex], nowindex, -	     speeder[checkindex], checkindex, -	     data->current_speed, count); -#endif - -      if(data->conf&(CONF_NOPROGRESS|CONF_MUTE)) -        return; - -      if(-1 != progressmax) { -        char left[20]; -        char estim[20]; -        char timespent[20]; -        int estimate = progressmax/(int) speed; -     -        time2str(left,estimate-(int) spent);  -        time2str(estim,estimate); -        time2str(timespent,spent); - -        percen=(double)point/progressmax; -        percen=percen*100; - -        fprintf(stderr, "\r%3d %10d %10d %6.0lf %s %s %s %6.0lf   ", -                (int)percen, point, progressmax, -                speed, estim, timespent, left, data->current_speed); -      } -      else -        fprintf(data->err, -                "\r%d bytes received in %.3lf seconds (%.0lf bytes/sec)", -                point, spent, speed); - -      lastshow = now.tv_sec; -      break; -    } -  case CURL_PROGRESS_BAR: /* 19990617 larsa */ -    { -      if (point == prev) break; -      if (progressmax == -1) { -        int prevblock = prev / 1024; -        int thisblock = point / 1024; -        while ( thisblock > prevblock ) { -            fprintf( data->err, "#" ); -            prevblock++; -        } -        prev = point; -      } else { -        char line[256]; -        char outline[256]; -        char format[40]; -        float frac = (float) point / (float) progressmax; -        float percent = frac * 100.0f; -        int barwidth = width - 7; -        int num = (int) (((float)barwidth) * frac); -        int i = 0; -        for ( i = 0; i < num; i++ ) { -            line[i] = '#'; -        } -        line[i] = '\0'; -        sprintf( format, "%%-%ds %%5.1f%%%%", barwidth ); -        sprintf( outline, format, line, percent ); -        fprintf( data->err, "\r%s", outline ); -      } -      prev = point; -      break; -    } -  default: /* 19990617 larsa */ -    { -      int prevblock = prev / 1024; -      int thisblock = point / 1024; -      if (prev == point) break; -      while ( thisblock > prevblock ) { -        fprintf( data->err, "#" ); -        prevblock++; -      } -      prev = point; -      break; -    } -  } -} - -void ProgressEnd(struct UrlData *data) -{ -  if(data->conf&(CONF_NOPROGRESS|CONF_MUTE)) -    return; -  fputs("\n", data->err); -} - -/* --- end of progress routines --- */ -#endif | 
