IPC::PubSub 0.22
Sponsored Links
IPC::PubSub 0.22 Ranking & Summary
File size:
0.019 MB
Platform:
Any Platform
License:
MIT/X Consortium License
Price:
Downloads:
988
Date added:
2007-02-14
Publisher:
Audrey Tang
IPC::PubSub 0.22 description
IPC::PubSub is Perl module for Interprocess Publish/Subscribe channels.
SYNOPSIS
# A new message bus with the DBM::Deep backend
# (Other possible backends include Memcached and PlainHash)
my $bus = IPC::PubSub->new(DBM_Deep => /tmp/pubsub.db);
# A channel is any arbitrary string
my $channel = #perl6;
# Register a new publisher (you can publish to multiple channels)
my $pub = $bus->new_publisher("#perl6", "#moose");
# Publish a message (may be a complex object) to those channels
$pub->msg("This is a message");
# Register a new subscriber (you can subscribe to multiple channels)
my $sub = $bus->new_subscriber("#moose");
# Publish an object to channels
$pub->msg("This is another message");
# Set all subsequent messages from this publisher to expire in 30 seconds
$pub->expiry(30);
$pub->msg("This message will go away in 30 seconds");
# Simple get: Returns the messages sent since the previous get,
# but only for the first channel.
my @msgs = $sub->get;
# Simple get, with an explicit channel key (must be among the ones
# it initially subscribed to)
my @moose_msgs = $sub->get("#moose");
# Complex get: Returns a hash reference from channels to array
# references of [timestamp, message].
my $hash_ref = $sub->get_all;
# Changing the list of channels we subscribe to
$sub->subscribe(some-other-channel);
$sub->unsubscribe(some-other-channel);
# Changing the list of channels we publish to
$pub->publish(some-other-channel);
$pub->unpublish(some-other-channel);
# Listing and checking if we are in a channel
my @sub_channels = $sub->channels;
my @pub_channels = $pub->channels;
print "Sub is in #moose" if $sub->channels->{#moose};
print "Pub is in #moose" if $pub->channels->{#moose};
# Raw cache manipulation APIs (not advised; use ->modify instead)
$bus->lock(channel);
$bus->unlock(channel);
my @timed_msgs = $bus->fetch(key1, key2, key3);
$bus->store(key, value, time, 30);
# Atomic updating of cache content; $_ is stored back on the
# end of the callback.
my $rv = $bus->modify(key => sub { delete $_->{foo} });
# Shorthand for $bus->modify(key => sub { $_ = val });
$bus->modify(key => val);
# Shorthand for $bus->modify(key => sub { $_ });
$bus->modify(key);
This module provides a simple API for publishing messages to channels and for subscribing to them.
When a message is published on a channel, all subscribers currently in that channel will get it on their next get or get_all call.
Currently, it offers three backends: DBM_Deep for on-disk storage, Memcached for possibly multi-host storage, and PlainHash for single-process storage.
Please see the tests in t/ for this distribution, as well as "SYNOPSIS" above, for some usage examples; detailed documentation is not yet available.
SYNOPSIS
# A new message bus with the DBM::Deep backend
# (Other possible backends include Memcached and PlainHash)
my $bus = IPC::PubSub->new(DBM_Deep => /tmp/pubsub.db);
# A channel is any arbitrary string
my $channel = #perl6;
# Register a new publisher (you can publish to multiple channels)
my $pub = $bus->new_publisher("#perl6", "#moose");
# Publish a message (may be a complex object) to those channels
$pub->msg("This is a message");
# Register a new subscriber (you can subscribe to multiple channels)
my $sub = $bus->new_subscriber("#moose");
# Publish an object to channels
$pub->msg("This is another message");
# Set all subsequent messages from this publisher to expire in 30 seconds
$pub->expiry(30);
$pub->msg("This message will go away in 30 seconds");
# Simple get: Returns the messages sent since the previous get,
# but only for the first channel.
my @msgs = $sub->get;
# Simple get, with an explicit channel key (must be among the ones
# it initially subscribed to)
my @moose_msgs = $sub->get("#moose");
# Complex get: Returns a hash reference from channels to array
# references of [timestamp, message].
my $hash_ref = $sub->get_all;
# Changing the list of channels we subscribe to
$sub->subscribe(some-other-channel);
$sub->unsubscribe(some-other-channel);
# Changing the list of channels we publish to
$pub->publish(some-other-channel);
$pub->unpublish(some-other-channel);
# Listing and checking if we are in a channel
my @sub_channels = $sub->channels;
my @pub_channels = $pub->channels;
print "Sub is in #moose" if $sub->channels->{#moose};
print "Pub is in #moose" if $pub->channels->{#moose};
# Raw cache manipulation APIs (not advised; use ->modify instead)
$bus->lock(channel);
$bus->unlock(channel);
my @timed_msgs = $bus->fetch(key1, key2, key3);
$bus->store(key, value, time, 30);
# Atomic updating of cache content; $_ is stored back on the
# end of the callback.
my $rv = $bus->modify(key => sub { delete $_->{foo} });
# Shorthand for $bus->modify(key => sub { $_ = val });
$bus->modify(key => val);
# Shorthand for $bus->modify(key => sub { $_ });
$bus->modify(key);
This module provides a simple API for publishing messages to channels and for subscribing to them.
When a message is published on a channel, all subscribers currently in that channel will get it on their next get or get_all call.
Currently, it offers three backends: DBM_Deep for on-disk storage, Memcached for possibly multi-host storage, and PlainHash for single-process storage.
Please see the tests in t/ for this distribution, as well as "SYNOPSIS" above, for some usage examples; detailed documentation is not yet available.
IPC::PubSub 0.22 Screenshot
IPC::PubSub 0.22 Keywords
IPC
PubSub
Interprocess Publish
PubSub 0.22
DBM
Perl module
channels
channel
message
Sub-
key
new
IPC::PubSub
IPCPubSub
IPC::PubSub 0.22
Libraries
Bookmark IPC::PubSub 0.22
IPC::PubSub 0.22 Copyright
WareSeeker periodically updates pricing and software information of IPC::PubSub 0.22 full version from the publisher, so some information may be slightly out-of-date. You should confirm all information before relying on it. Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future development of IPC::PubSub 0.22 Edition. Download links are directly from our publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed
Featured Software
Want to place your software product here?
Please contact us for consideration.
Contact WareSeeker.com
Related Information
Related Software
libpubsub provides everything to setup a simple publish/subscribe environment. Free Download
Smack PubSub Extensions is a set of extensions to smack. Free Download
gIpc is a tool to get all the IPC info. Free Download
IPC::Run is a Perl module for system() and background procs w/ piping, redirs, ptys (Unix, Win32). Free Download
IPC::DirQueue is a disk-based many-to-many task queue. Free Download
libshbuf introduces a new IPC concept: the "shared buffer", a more flexible and faster alternative for standard Unix FIFOs. Free Download
DCE::UUID is a Perl module with misc UUID functions. Free Download
File::Type::Builder is Perl module to parse mime-magic and generate code. Free Download
Latest Software
Popular Software
Favourite Software