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.21 by root, Sun Jun 12 01:48:05 2016 UTC vs.
Revision 1.25 by root, Wed Jun 15 09:20:42 2016 UTC

136=item on_error => $callback->($fcp, $message) 136=item on_error => $callback->($fcp, $message)
137 137
138Invoked on any (fatal) errors, such as unexpected connection close. The 138Invoked on any (fatal) errors, such as unexpected connection close. The
139callback receives the FCP object and a textual error message. 139callback receives the FCP object and a textual error message.
140 140
141=item on_failure => $callback->($fcp, $type, $backtrace, $args, $error) 141=item on_failure => $callback->($fcp, $type, $args, $backtrace, $error)
142 142
143Invoked when an FCP request fails that didn't have a failure callback. See 143Invoked when an FCP request fails that didn't have a failure callback. See
144L<FCP REQUESTS> for details. 144L<FCP REQUESTS> for details.
145 145
146=back 146=back
425 425
426Also comes in this underscore variant: 426Also comes in this underscore variant:
427 427
428 $fcp->get_plugin_info_ ($name, $detailed, $cb); 428 $fcp->get_plugin_info_ ($name, $detailed, $cb);
429 429
430You can thinbk of the underscore as a kind of continuation indicator - the 430You can think of the underscore as a kind of continuation indicator - the
431normal function waits and returns with the data, the C<_> indicates that 431normal function waits and returns with the data, the C<_> indicates that
432you pass the continuation yourself, and the continuation will be invoked 432you pass the continuation yourself, and the continuation will be invoked
433with the results. 433with the results.
434 434
435This callback/continuation argument (C<$cb>) can come in three forms itself: 435This callback/continuation argument (C<$cb>) can come in three forms itself:
444call site. 444call site.
445 445
446This is a popular choice, but it makes handling errors hard - make sure 446This is a popular choice, but it makes handling errors hard - make sure
447you never generate protocol errors! 447you never generate protocol errors!
448 448
449If an C<on_failure> hook exists, it will be invoked with the FCP object, 449In the failure case, if an C<on_failure> hook exists, it will be invoked
450the request type (the name of the method), a (textual) backtrace as 450with the FCP object, the request type (the name of the method, an arrayref
451generated by C<Carp::longmess>, and arrayref containing the arguments from 451containing the arguments from the original request invocation, a (textual)
452the original request invocation and the error object from the server, in 452backtrace as generated by C<Carp::longmess>, and the error object from the
453this order, e.g.: 453server, in this order, e.g.:
454 454
455 on_failure => sub { 455 on_failure => sub {
456 my ($fcp, $request_type, $backtrace, $orig_args, $error_object) = @_; 456 my ($fcp, $request_type, $orig_args, $backtrace, $error_object) = @_;
457 457
458 warn "FCP failure ($type), $error_object->{code_description} ($error_object->{extra_description})$backtrace"; 458 warn "FCP failure ($type), $error_object->{code_description} ($error_object->{extra_description})$backtrace";
459 exit 1; 459 exit 1;
460 }, 460 },
461 461
737 }); 737 });
738}; 738};
739 739
740=item $status = $fcp->remove_request ($identifier[, $global]) 740=item $status = $fcp->remove_request ($identifier[, $global])
741 741
742Remove the request with the given isdentifier. Returns true if successful, 742Remove the request with the given identifier. Returns true if successful,
743false on error. 743false on error.
744 744
745=cut 745=cut
746 746
747_txn remove_request => sub { 747_txn remove_request => sub {
792 792
793C<$want_read> and C<$want_write> should be set to a true value when you 793C<$want_read> and C<$want_write> should be set to a true value when you
794want to read (get) files or write (put) files, respectively. 794want to read (get) files or write (put) files, respectively.
795 795
796On error, an exception is thrown. Otherwise, C<$can_read> and 796On error, an exception is thrown. Otherwise, C<$can_read> and
797C<$can_write> indicate whether you can reaqd or write to freenet via the 797C<$can_write> indicate whether you can read or write to freenet via the
798directory. 798directory.
799 799
800=cut 800=cut
801 801
802_txn test_dda => sub { 802_txn test_dda => sub {
923on every change, which will be called as C<< $cb->($fcp, $kv, $type) >>, where C<$type> 923on every change, which will be called as C<< $cb->($fcp, $kv, $type) >>, where C<$type>
924is the type of the original message triggering the change, 924is the type of the original message triggering the change,
925 925
926To fill this cache with the global queue and keep it updated, 926To fill this cache with the global queue and keep it updated,
927call C<watch_global> to subscribe to updates, followed by 927call C<watch_global> to subscribe to updates, followed by
928C<list_persistent_requests_sync>. 928C<list_persistent_requests>.
929 929
930 $fcp->watch_global_sync_; # do not wait 930 $fcp->watch_global_; # do not wait
931 $fcp->list_persistent_requests; # wait 931 $fcp->list_persistent_requests; # wait
932 932
933To get a better idea of what is stored in the cache, here is an example of 933To get a better idea of what is stored in the cache, here is an example of
934what might be stored in C<< $fcp->{req}{"Frost-gpl.txt"} >>: 934what might be stored in C<< $fcp->{req}{"Frost-gpl.txt"} >>:
935 935
1044 if 0.1 > rand; 1044 if 0.1 > rand;
1045 } 1045 }
1046 } 1046 }
1047 1047
1048 # see if the dummy plugin is loaded, to ensure all previous requests have finished. 1048 # see if the dummy plugin is loaded, to ensure all previous requests have finished.
1049 $fcp->get_plugin_info_sync ("dummy"); 1049 $fcp->get_plugin_info ("dummy");
1050 1050
1051=head1 SEE ALSO 1051=head1 SEE ALSO
1052 1052
1053L<http://wiki.freenetproject.org/FreenetFCPSpec2Point0>, L<Net::FCP>. 1053L<http://wiki.freenetproject.org/FreenetFCPSpec2Point0>, L<Net::FCP>.
1054 1054

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines