185 |
if(scalar(keys %{$channels})) |
if(scalar(keys %{$channels})) |
186 |
{ |
{ |
187 |
$self->emitOKHeader(); |
$self->emitOKHeader(); |
188 |
$self->setChannels($channels,$persist); |
$self->setChannels($channels,$persist,$self->{'mode'},''); |
189 |
$self->close(1) unless($persist); |
$self->close(1) unless($persist); |
190 |
return; |
return; |
191 |
} |
} |
215 |
my $self=shift; |
my $self=shift; |
216 |
my $channels=shift; |
my $channels=shift; |
217 |
my $persist=shift; |
my $persist=shift; |
218 |
|
my $mode=shift || ''; |
219 |
|
my $userAgent=shift || ''; |
220 |
|
|
221 |
foreach my $channelName (keys %{$channels}) |
foreach my $channelName (keys %{$channels}) |
222 |
{ |
{ |
226 |
|
|
227 |
$self->{'channels'}->{$channelName}=$channel if($persist); |
$self->{'channels'}->{$channelName}=$channel if($persist); |
228 |
|
|
229 |
$channel->addSubscriber($self,$startIndex,$persist); |
$channel->addSubscriber($self,$startIndex,$persist,$mode,$userAgent); |
230 |
} |
} |
231 |
} |
} |
232 |
|
|
339 |
return unless(exists($self->{'channels'}->{$channelName})); |
return unless(exists($self->{'channels'}->{$channelName})); |
340 |
|
|
341 |
my $channel=$self->{'channels'}->{$channelName}; |
my $channel=$self->{'channels'}->{$channelName}; |
342 |
$channel->removeSubscriber($self); |
$channel->removeSubscriber($self,'channelClose'); |
343 |
|
|
344 |
delete($self->{'channels'}->{$channelName}); |
delete($self->{'channels'}->{$channelName}); |
345 |
|
|
346 |
$self->close() if(scalar(keys %{$self->{'channels'}})==0); |
$self->close(0,'channelsClosed') if(scalar(keys %{$self->{'channels'}})==0); |
347 |
} |
} |
348 |
|
|
349 |
sub close { |
sub close { |
353 |
foreach my $channelName (keys %{$self->{'channels'}}) |
foreach my $channelName (keys %{$self->{'channels'}}) |
354 |
{ |
{ |
355 |
my $channel=$self->{'channels'}->{$channelName}; |
my $channel=$self->{'channels'}->{$channelName}; |
356 |
$channel->removeSubscriber($self); |
$channel->removeSubscriber($self,'subscriberClose'); |
357 |
} |
} |
358 |
delete($self->{'channels'}); |
delete($self->{'channels'}); |
359 |
|
|