… | |
… | |
10 | |
10 | |
11 | This is an internal utility module, horrible to look at, so don't. |
11 | This is an internal utility module, horrible to look at, so don't. |
12 | |
12 | |
13 | =cut |
13 | =cut |
14 | |
14 | |
15 | package AnyEvent::MP::Node; |
15 | package AnyEvent::MP::Node; # base class for nodes |
16 | |
16 | |
17 | use common::sense; |
17 | use common::sense; |
18 | |
18 | |
19 | use AnyEvent (); |
19 | use AnyEvent (); |
20 | use AnyEvent::Socket (); |
20 | use AnyEvent::Socket (); |
… | |
… | |
39 | sub send { |
39 | sub send { |
40 | &{ shift->{send} } |
40 | &{ shift->{send} } |
41 | } |
41 | } |
42 | |
42 | |
43 | # nodes reachable via the network |
43 | # nodes reachable via the network |
44 | package AnyEvent::MP::Node::Remote; |
44 | package AnyEvent::MP::Node::Remote; # a remote node |
45 | |
45 | |
46 | use base "AnyEvent::MP::Node"; |
46 | use base "AnyEvent::MP::Node"; |
47 | |
47 | |
48 | # called at init time, mostly sets {send} |
48 | # called at init time, mostly sets {send} |
49 | sub transport_reset { |
49 | sub transport_reset { |
… | |
… | |
113 | |
113 | |
114 | return if $self->{transport}; |
114 | return if $self->{transport}; |
115 | return if $self->{connect_w}; |
115 | return if $self->{connect_w}; |
116 | |
116 | |
117 | Scalar::Util::weaken $self; |
117 | Scalar::Util::weaken $self; |
|
|
118 | use Carp;Carp::cluck;#d# |
118 | |
119 | |
119 | $self->{connect_to} ||= AE::timer $AnyEvent::MP::Kernel::CONFIG->{connect_interval}, 0, sub { |
120 | $self->{connect_to} ||= AE::timer $AnyEvent::MP::Kernel::CONFIG->{connect_interval}, 0, sub { |
120 | $self->transport_error (transport_error => $self->{id}, "unable to connect"); |
121 | $self->transport_error (transport_error => $self->{id}, "unable to connect"); |
121 | }; |
122 | }; |
122 | |
123 | |
… | |
… | |
198 | $self->send (["", mon0 => $portid]); |
199 | $self->send (["", mon0 => $portid]); |
199 | delete $self->{monitor}{$portid}; |
200 | delete $self->{monitor}{$portid}; |
200 | } |
201 | } |
201 | } |
202 | } |
202 | |
203 | |
203 | package AnyEvent::MP::Node::Self; |
204 | package AnyEvent::MP::Node::Self; # the local node |
204 | |
205 | |
205 | use base "AnyEvent::MP::Node"; |
206 | use base "AnyEvent::MP::Node"; |
206 | |
207 | |
207 | sub connect { |
208 | sub connect { |
208 | # we are trivially connected |
209 | # we are trivially connected |