NAME
LWES - Perl extension for the Light Weight Event System
SYNOPSIS
use LWES;
use LWES::EventParser;
use IO::Socket::Multicast;
my $LWES_ADDRESS = "224.1.1.1";
my $LWES_PORT = 9000;
# load an event schema from a file to validate events
my $event_db = LWES::create_db("eventTypes.esf");
# create an emitter for sending events
my $emitter = LWES::create_emitter($LWES_ADDRESS, 0, $LWES_PORT, 0, 60);
# create an event and validate it against the DB
my $event = LWES::create_event($event_db, "MyEvent");
# or create an unvalidated event
my $event2 = LWES::create_event(undef, "MyOtherEvent");
# set some fields
LWES::set_string($event, "MyField", "MyValue");
LWES::set_int32($event2, "MyNumber", 123);
# emit the events
LWES::emit($emitter, $event);
LWES::emit($emitter, $event2);
# listen to some events on the network
my $socket = IO::Socket::Multicast->new(LocalPort => $LWES_PORT,
Reuse => 1);
$socket->mcast_add($LWES_ADDRESS);
my ($message, $peer);
$peer = recv($socket, $message, 65535, 0);
my ($port, $peeraddr) = sockaddr_in($peer);
# deserialize the event into a perl hash
my $event = bytesToEvent($message);
# access the various event fields
my $data = $event->{'MyField'};
# cleanup
LWES::destroy_event($event);
LWES::destroy_emitter($emitter);
LWES::destroy_db($event_db);
DESCRIPTION
This is the Perl interface to the Light Weight Event System. The Light Weight Event System is a UDP-based communication toolkit with built-in serialization, formatting, and type-checking.
EXPORT
None by default.
AUTHOR
Anthony Molinaro, <molinaro@users.sourceforge.net> Michael P. Lum, <mlum@users.sourceforge.net>
COPYRIGHT AND LICENSE
Copyright (C) 2008 Light Weight Event System All rights reserved.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.