/[webpac2]/trunk/lib/WebPAC/Common.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/WebPAC/Common.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 363 by dpavlin, Sun Jan 8 20:27:06 2006 UTC revision 763 by dpavlin, Wed Oct 25 20:53:14 2006 UTC
# Line 15  WebPAC::Common - internal methods called Line 15  WebPAC::Common - internal methods called
15    
16  =head1 VERSION  =head1 VERSION
17    
18  Version 0.02  Version 0.04
19    
20  =cut  =cut
21    
22  our $VERSION = '0.02';  our $VERSION = '0.04';
23    
24  =head1 SYNOPSYS  =head1 SYNOPSYS
25    
# Line 43  sub progress_bar { Line 43  sub progress_bar {
43    
44          my $log = $self->_get_logger();          my $log = $self->_get_logger();
45    
46            $self->{last_pcnt_t} ||= time();
47    
48          $log->logconfess("no current value!") if (! $curr);          $log->logconfess("no current value!") if (! $curr);
49          $log->logconfess("no maximum value!") if (! $max);          $log->logconfess("no maximum value!") if (! $max);
50    
# Line 62  sub progress_bar { Line 64  sub progress_bar {
64                  $self->{'start_t'} = time();                  $self->{'start_t'} = time();
65          }          }
66    
67          if ($p != $self->{'last_pcnt'}) {          my $t = time();
68    
69            if ($p != $self->{'last_pcnt'} || ( $t - $self->{last_pcnt_t} ) > 2 ) {
70    
                 my $t = time();  
71                  my $rate = ($curr / ($t - $self->{'start_t'} || 1));                  my $rate = ($curr / ($t - $self->{'start_t'} || 1));
72                  my $eta = ($max-$curr) / ($rate || 1);                  my $eta = ($max-$curr) / ($rate || 1);
73                  printf STDERR ("%5d [%-38s] %-5d %0.1f/s %s\r",$curr,"=" x ($p/3)."$p%>", $max, $rate, $self->fmt_time($eta));                  printf STDERR ("%5d [%-38s] %-5d %0.1f/s %s\r",$curr,"=" x ($p/3)."$p%>", $max, $rate, $self->fmt_time($eta));
74                  $self->{'last_pcnt'} = $p;                  $self->{'last_pcnt'} = $p;
75                  $self->{'last_curr'} = $curr;                  $self->{'last_curr'} = $curr;
76                    $self->{last_pcnt_t} = $t;
77          }          }
78          print STDERR "\n" if ($p == 100);          print STDERR "\n" if ($p == 100);
79  }  }
# Line 199  method Line 203  method
203    
204  =cut  =cut
205    
206    my $_logger_seen;
207    
208  sub _get_logger {  sub _get_logger {
209          my $self = shift;          my $self = shift;
210    
211          my $name = (caller(2))[3] || caller;          my $name = (caller(1))[3] || caller;
212    
213            # make name full
214            my $f = '';
215            if ($log_debug) {
216                    foreach ( 0 .. 5 ) {
217                            my $s = (caller($_))[3];
218                            $f .= "#### $_ >> $s\n" if ($s);
219                    }
220            }
221    
222          $self->{'_logger_'} ||= $self->_init_logger;          $self->{'_logger_'} ||= $self->_init_logger;
223    
224          my $log = get_logger( $name );          my $log = get_logger( $name );
225          warn "# get_logger( $name ) level ", $log->level, "\n" if ($log_debug);          warn "# get_logger( $name ) level ", $log->level, "\n$f" if ($log_debug && !defined($_logger_seen->{$name}));
226            $_logger_seen->{$name}++;
227          return $log;          return $log;
228  }  }
229    
# Line 221  use webpac line this: Line 238  use webpac line this:
238  =cut  =cut
239    
240  sub _new {  sub _new {
241          my $class = shift;          my $class = shift;
242          my $self = {@_};          my $self = {@_};
243          bless($self, $class);          bless($self, $class);
244    
245          $self ? return $self : return undef;          $self ? return $self : return undef;
# Line 242  B<This is different from normal Log4perl Line 259  B<This is different from normal Log4perl
259  also use method names, and not only classes (which are just few)  also use method names, and not only classes (which are just few)
260  to filter logging.  to filter logging.
261    
262    =cut
263    
264    1;

Legend:
Removed from v.363  
changed lines
  Added in v.763

  ViewVC Help
Powered by ViewVC 1.1.26