AnyEvent::MP::Global - some network-global services
This module maintains a fully-meshed network, if possible, and tries to ensure that we are connected to at least one other node.
It also manages named port groups - ports can register themselves in any number of groups that will be available network-wide, which is great for discovering services.
Running it on one node will automatically run it on all nodes, although, at the moment, the global service is started by default anyways.
- $guard = grp_reg $group, $port
Register the given (local!) port in the named global group
The port will be unregistered automatically when the port is destroyed.
When not called in void context, then a guard object will be returned that will also cause the name to be unregistered when destroyed.
- $ports = grp_get $group
Returns all the ports currently registered to the given group (as read-only(!) array reference). When the group has no registered members, return
- $guard = grp_mon $group, $callback->($ports, $add, $del)
Installs a monitor on the given group. Each time there is a change it will be called with the current group members as an arrayref as the first argument. The second argument only contains ports added, the third argument only ports removed.
grp_get, all three arguments will always be array-refs, even if the array is empty. None of the arrays must be modified in any way.
The first invocation will be with the first two arguments set to the current members, as if all of them were just added, but only when the group is actually non-empty.
Optionally returns a guard object that uninstalls the watcher when it is destroyed.
Marc Lehmann <email@example.com> http://home.schmorp.de/