]> git.evergreen-ils.org Git - OpenSRF.git/blob - src/perl/lib/OpenSRF/Transport/Listener.pm
c3496b120ab1926a6edd75c25fe37a7fb59fdf8c
[OpenSRF.git] / src / perl / lib / OpenSRF / Transport / Listener.pm
1 package OpenSRF::Transport::Listener;
2 use base 'OpenSRF';
3 use OpenSRF::Utils::Logger qw(:level);
4 use OpenSRF::Transport::SlimJabber::Inbound;
5 use base 'OpenSRF::Transport::SlimJabber::Inbound';
6
7 =head1 Description
8
9 This is the empty class that acts as the subclass of the transport listener.  My API
10 includes
11
12 new( $app )
13         create a new Listener with appname $app
14
15 initialize()
16         Perform any transport layer connections/authentication.
17
18 listen()
19         Block, wait for, and process incoming messages
20
21 =cut
22
23 =head2 set_listener()
24
25 Sets my superclass.  Pass in a string representing the perl module
26 (e.g. OpenSRF::Transport::Jabber::JInbound) to be used as the
27 superclass and it will be pushed onto @ISA.
28
29 =cut
30
31 sub set_listener {
32         my( $class, $listener ) = @_;
33         OpenSRF::Utils::Logger->transport("Loading Listener $listener", INFO );
34         if( $listener ) {
35                 $listener->use;
36                 if( $@ ) {
37                         OpenSRF::Utils::Logger->error(
38                                         "Unable to set transport listener: $@", ERROR );
39                 }
40                 unshift @ISA, $listener;
41         }
42 }
43
44
45 1;