The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

XML::Atom::Stream - A client interface for AtomStream

SYNOPSIS

  use XML::Atom::Stream;

  my $url = "http://updates.sixapart.com/atom-stream.xml";

  my $client = XML::Atom::Stream->new(
      callback  => \&callback,
      reconnect => 1,
      debug     => 1,
      timeout   => 30,
  );
  $client->connect($url);

  sub callback {
      my($atom) = @_;
      # $atom is a XML::Atom::Feed object
  }

DESCRIPTION

XML::Atom::Stream is a consumer of AtomStream. It connects to Atom stream, the never ending Atom feed and parses the feed by SAX pull parser. Whenever it retrieves a new feed, your callback function will be invoked.

METHODS

new
  my $client = XML::Atom::Stream->new(
      callback  => \&callback,
      reconnect => 1,
      debug     => 1,
  );

Creates a new XML::Atom::Stream instance.

callback

Callback reference to handle new Atom feed. Callback function will receive only one parameter, XML::Atom::Feed object. You can abort the connection by throwing an exception (die) inside the callback.

reconnect

Whether to do automatic reconnection when the SAX parser fails to parse the stream data, or the connection gets disconnected. Note that if you abort the connection by dying inside the callback, it won't reconnect. Defaults to 0.

timeout

timeout variable which is passed to LWP::UserAgent. Defaults to 15.

ua

an object of LWP::UserAgent or its subclass to use to connect to the Atom stream. Optional and by default it tries to create its own LWP::UserAgent object.

debug

Whether to display debug messages. Defaults to 0.

connect
  $client->connect($url);

Connects to the Atom stream URL and waits for the incoming feeds.

AUTHOR

Tatsuhiko Miyagawa <miyagawa@bulknews.net> with tips from Benjamin Trott and Brad Fitzpatrick.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

XML::Atom, XML::Atom::Filter, http://www.livejournal.com/users/brad/2143713.html