Advertisement
Guest User

Mojo::Asset::transfer

a guest
Nov 20th, 2012
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.66 KB | None | 0 0
  1. # Mojo::Asset::File:
  2.  
  3. sub transfer {
  4.   my $self = shift;
  5.   my $handle = $self->handle;
  6.   my $cb = shift;
  7.   my $size = shift || 131072;
  8.   $handle->sysseek(0, SEEK_SET);
  9.   while ($handle->sysread(my $buffer, $size)) { $cb->($buffer) }
  10.   return $self;
  11. }
  12.  
  13. # Mojo::Asset::Memory:
  14.  
  15. sub transfer {
  16.   my $self = shift;
  17.   my $cb = shift;
  18.   my $start = 0;
  19.   my $end = $self->size;
  20.   my $size = shift || $end;
  21.  
  22.   while ($start < $end) {
  23.     $cb->(substr $self->{content}, $start, $size);
  24.     $start += $size;
  25.   }
  26.   return $self;
  27. }
  28.  
  29. # usage example:
  30.  
  31. open $fh, '>', $path_to_file;
  32.  
  33. $content->asset->transfer(
  34.   sub { $fh->syswrite($_[0]) } => 1_000_000
  35. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement