Changeset 860
- Timestamp:
- 03/05/09 01:35:28 (9 months ago)
- Location:
- trunk/DJabberd-Gearman/lib/DJabberd/Gearman
- Files:
-
- 2 modified
-
BasePlugin.pm (modified) (1 diff)
-
Delivery.pm (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/DJabberd-Gearman/lib/DJabberd/Gearman/BasePlugin.pm
r859 r860 100 100 } 101 101 102 sub make_configurable_funcs { 103 my ($class, @funcs) = @_; 104 105 no strict 'refs'; 106 107 foreach my $func (@funcs) { 108 my $config_name = $func.'_func'; 109 my $set_config_name = "set_config_".$func."func"; 110 *{$class."::".$set_config_name} = sub { 111 my ($self, $name) = @_; 112 $self->$config_name($name); 113 }; 114 115 *{$class."::".$config_name} = sub { 116 my $self = shift; 117 118 if (@_) { 119 $self->{$config_name} = shift; 120 $self->{$config_name} =~ s/^\s*//g; 121 $self->{$config_name} =~ s/\s*$//g; 122 } 123 else { 124 return $self->{$config_name}; 125 } 126 }; 127 } 128 } 129 102 130 1; 103 131 -
trunk/DJabberd-Gearman/lib/DJabberd/Gearman/Delivery.pm
r859 r860 27 27 28 28 use DJabberd::Gearman; 29 use base qw(DJabberd::Delivery DJabberd::Gearman::BasePlugin); 29 use base qw(DJabberd::Gearman::BasePlugin); 30 use DJabberd::Log; 31 my $logger = DJabberd::Log->get_logger(); 30 32 31 sub set_config_receivefunc { 32 my ($self, $receive_func) = @_; 33 34 $self->{receive_func} = $receive_func; 35 $self->{receive_func} =~ s/^\s*//g; 36 $self->{receive_func} =~ s/\s*$//g; 37 } 38 39 sub set_config_transmitfunc { 40 my ($self, $transmit_func) = @_; 41 42 $self->{transmit_func} = $transmit_func; 43 } 33 __PACKAGE__->make_configurable_funcs(qw(receive transmit)); 44 34 45 35 sub register { … … 50 40 my $client = $self->gearman_client; 51 41 52 if ($self-> {receive_func}) {42 if ($self->receive_func) { 53 43 $vhost->register_hook('deliver', sub { 54 44 $self->handle_received_stanza(@_); 55 45 }); 56 46 } 57 58 return $self->SUPER::register($vhost);59 47 } 60 48 … … 62 50 my ($self, $vhost, $cb, $stanza) = @_; 63 51 64 my $func = $self-> {receive_func};52 my $func = $self->receive_func; 65 53 my $stanza_xml = $stanza->as_xml; 54 55 $logger->debug("Sending stanza to $func function"); 66 56 67 57 $self->call_gearman_func($func, $stanza_xml, {
