… | |
… | |
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 AE (); |
|
|
20 | use AnyEvent::Util (); |
19 | use AnyEvent (); |
21 | use AnyEvent::Socket (); |
20 | use AnyEvent::Socket (); |
22 | |
21 | |
23 | use AnyEvent::MP::Transport (); |
22 | use AnyEvent::MP::Transport (); |
24 | |
23 | |
25 | sub new { |
24 | sub new { |
… | |
… | |
40 | sub send { |
39 | sub send { |
41 | &{ shift->{send} } |
40 | &{ shift->{send} } |
42 | } |
41 | } |
43 | |
42 | |
44 | # nodes reachable via the network |
43 | # nodes reachable via the network |
45 | package AnyEvent::MP::Node::Remote; |
44 | package AnyEvent::MP::Node::Remote; # a remote node |
46 | |
45 | |
47 | use base "AnyEvent::MP::Node"; |
46 | use base "AnyEvent::MP::Node"; |
48 | |
47 | |
49 | # called at init time, mostly sets {send} |
48 | # called at init time, mostly sets {send} |
50 | sub transport_reset { |
49 | sub transport_reset { |
… | |
… | |
199 | $self->send (["", mon0 => $portid]); |
198 | $self->send (["", mon0 => $portid]); |
200 | delete $self->{monitor}{$portid}; |
199 | delete $self->{monitor}{$portid}; |
201 | } |
200 | } |
202 | } |
201 | } |
203 | |
202 | |
204 | package AnyEvent::MP::Node::Self; |
203 | package AnyEvent::MP::Node::Self; # the local node |
205 | |
204 | |
206 | use base "AnyEvent::MP::Node"; |
205 | use base "AnyEvent::MP::Node"; |
207 | |
206 | |
208 | sub connect { |
207 | sub connect { |
209 | # we are trivially connected |
208 | # we are trivially connected |