ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent-FCP/FCP.pm
(Generate patch)

Comparing AnyEvent-FCP/FCP.pm (file contents):
Revision 1.9 by root, Tue Aug 4 00:35:16 2015 UTC vs.
Revision 1.10 by root, Tue Aug 4 00:50:25 2015 UTC

186} 186}
187 187
188sub _push_queue { 188sub _push_queue {
189 my ($self, $queue) = @_; 189 my ($self, $queue) = @_;
190 190
191 warn "oush @$queue\n";#d#
192 shift @$queue; 191 shift @$queue;
193 $queue->[0]($self, AnyEvent::Util::guard { $self->_push_queue ($queue) }) 192 $queue->[0]($self, AnyEvent::Util::guard { $self->_push_queue ($queue) })
194 if @$queue; 193 if @$queue;
195} 194}
196 195
215 my $done_cb = sub { 214 my $done_cb = sub {
216 $kv{pkt_type} = $type; 215 $kv{pkt_type} = $type;
217 216
218 my $on = $self->{on}; 217 my $on = $self->{on};
219 for (0 .. $#$on) { 218 for (0 .. $#$on) {
220 unless (my $res = $on->[$_]($type, \%kv, $rdata)) { 219 unless (my $res = $on->[$_]($self, $type, \%kv, $rdata)) {
221 splice @$on, $_, 1 unless defined $res; 220 splice @$on, $_, 1 unless defined $res;
222 return; 221 return;
223 } 222 }
224 } 223 }
225 224
368=cut 367=cut
369 368
370_txn list_persistent_requests => sub { 369_txn list_persistent_requests => sub {
371 my ($self, $cv) = @_; 370 my ($self, $cv) = @_;
372 371
372 $self->serialise (list_persistent_requests => sub {
373 my ($self, $guard) = @_;
374
373 my %res; 375 my %res;
374 376
375 $self->send_msg ("list_persistent_requests"); 377 $self->send_msg ("list_persistent_requests");
376 378
377 push @{ $self->{queue} }, sub { 379 $self->on (sub {
378 my ($self, $type, $kv, $rdata) = @_; 380 my ($self, $type, $kv, $rdata) = @_;
379 381
382 $guard if 0;
383
380 if ($type eq "end_list_persistent_requests") { 384 if ($type eq "end_list_persistent_requests") {
381 $cv->(\%res); 385 $cv->(\%res);
386 return;
387 } else {
388 my $id = $kv->{identifier};
389
390 if ($type =~ /^persistent_(get|put|put_dir)$/) {
391 $res{$id} = {
392 type => $1,
393 %{ $res{$id} },
394 %$kv,
395 };
396 } elsif ($type eq "simple_progress") {
397 delete $kv->{pkt_type}; # save memory
398 push @{ $res{delete $kv->{identifier}}{simple_progress} }, $kv;
399 } else {
400 $res{delete $kv->{identifier}}{delete $kv->{pkt_type}} = $kv;
401 }
402 }
403
382 1 404 1
383 } else {
384 my $id = $kv->{identifier};
385
386 if ($type =~ /^persistent_(get|put|put_dir)$/) {
387 $res{$id} = {
388 type => $1,
389 %{ $res{$id} },
390 %$kv,
391 };
392 } elsif ($type eq "simple_progress") {
393 delete $kv->{pkt_type}; # save memory
394 push @{ $res{delete $kv->{identifier}}{simple_progress} }, $kv;
395 } else {
396 $res{delete $kv->{identifier}}{delete $kv->{pkt_type}} = $kv;
397 }
398 0
399 } 405 });
400 }; 406 });
401}; 407};
402 408
403=item $cv = $fcp->remove_request ($global, $identifier) 409=item $cv = $fcp->remove_request ($global, $identifier)
404 410
405=item $status = $fcp->remove_request_sync ($global, $identifier) 411=item $status = $fcp->remove_request_sync ($global, $identifier)
516 directory => $remote, 522 directory => $remote,
517 want_read_directory => $want_read ? "true" : "false", 523 want_read_directory => $want_read ? "true" : "false",
518 want_write_directory => $want_write ? "true" : "false", 524 want_write_directory => $want_write ? "true" : "false",
519 ); 525 );
520 $self->on (sub { 526 $self->on (sub {
521 my ($type, $kv) = @_; 527 my ($self, $type, $kv) = @_;
522 528
523 if ($type eq "test_dda_reply") { 529 if ($type eq "test_dda_reply") {
524 # the filenames are all relative to the server-side directory, 530 # the filenames are all relative to the server-side directory,
525 # which might or might not match $remote anymore, so we 531 # which might or might not match $remote anymore, so we
526 # need to rewrite the paths to be relative to $local 532 # need to rewrite the paths to be relative to $local
552 } 558 }
553 559
554 $self->send_msg (test_dda_response => %response); 560 $self->send_msg (test_dda_response => %response);
555 561
556 $self->on (sub { 562 $self->on (sub {
557 my ($type, $kv) = @_; 563 my ($self, $type, $kv) = @_;
558 564
559 $guard if 0; # reference 565 $guard if 0; # reference
560 566
561 if ($type eq "test_dda_complete") { 567 if ($type eq "test_dda_complete") {
562 $cv->( 568 $cv->(

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines