77 |
$list; |
$list; |
78 |
} |
} |
79 |
|
|
80 |
|
sub listChannelsUsingTemplate { |
81 |
|
my $class=shift; |
82 |
|
my $template=shift; |
83 |
|
|
84 |
|
return '' unless(defined($template) && $template ne ''); |
85 |
|
|
86 |
|
my $list=''; |
87 |
|
foreach my $channelName (sort keys %Channels) |
88 |
|
{ |
89 |
|
my $channel=$Channels{$channelName}; |
90 |
|
|
91 |
|
$list.=$channel->descriptionWithTemplate($template); |
92 |
|
} |
93 |
|
|
94 |
|
$list; |
95 |
|
} |
96 |
|
|
97 |
sub deleteChannel { |
sub deleteChannel { |
98 |
my $class=shift; |
my $class=shift; |
99 |
my $channelName=shift; |
my $channelName=shift; |
182 |
|
|
183 |
$startIndex=0 if($startIndex<0); |
$startIndex=0 if($startIndex<0); |
184 |
|
|
185 |
my $numMsgToSend=0; |
if($startIndex<$msgCount) |
|
while($startIndex<$msgCount) |
|
186 |
{ |
{ |
187 |
my $message=$self->{'messages'}->[$startIndex++]; |
$subscriber->sendMessages(@{$self->{'messages'}}[$startIndex,$msgCount-1]); |
|
|
|
|
$txt.=$message->message(); |
|
|
$numMsgToSend++; |
|
188 |
} |
} |
|
|
|
|
$subscriber->sendMessage($txt,$numMsgToSend); |
|
189 |
} |
} |
190 |
|
|
191 |
sub removeSubscriber { |
sub removeSubscriber { |
227 |
|
|
228 |
$self->trimMessageStoreBySize(); |
$self->trimMessageStoreBySize(); |
229 |
|
|
230 |
my $text=$message->message(); |
map { $_->sendMessages($message) } @{$self->{'subscribers'}}; |
231 |
map { $_->sendMessage($text) } @{$self->{'subscribers'}}; |
|
232 |
|
$message; |
233 |
} |
} |
234 |
|
|
235 |
sub messageCount { |
sub messageCount { |
294 |
# |
# |
295 |
return undef unless(defined($id)); |
return undef unless(defined($id)); |
296 |
|
|
297 |
my $numMessages=scalar(scalar(@{$self->{'messages'}})); |
my $numMessages=scalar(@{$self->{'messages'}}); |
298 |
|
|
299 |
return undef unless($numMessages); |
return undef unless($numMessages); |
300 |
return -1 unless($id ne ''); |
return -1 unless($id ne ''); |
329 |
return $low; |
return $low; |
330 |
} |
} |
331 |
|
|
332 |
|
sub lastMsgID { |
333 |
|
my $self=shift; |
334 |
|
|
335 |
|
my $numMessages=scalar(@{$self->{'messages'}}); |
336 |
|
|
337 |
|
return 'undefined' unless($numMessages>0); |
338 |
|
|
339 |
|
@{$self->{'messages'}}[-1]->id(); |
340 |
|
} |
341 |
|
|
342 |
|
sub descriptionWithTemplate { |
343 |
|
my $self=shift; |
344 |
|
my $template=shift; |
345 |
|
|
346 |
|
$template=~s/~([a-zA-Z0-9_]*)~/ |
347 |
|
if(!defined($1) || $1 eq '') |
348 |
|
{ |
349 |
|
'~'; |
350 |
|
} |
351 |
|
elsif($1 eq 'messageCount') |
352 |
|
{ |
353 |
|
$self->messageCount(); |
354 |
|
} |
355 |
|
elsif($1 eq 'subscriberCount') |
356 |
|
{ |
357 |
|
$self->subscriberCount(); |
358 |
|
} |
359 |
|
elsif($1 eq 'lastMsgID') |
360 |
|
{ |
361 |
|
$self->lastMsgID(); |
362 |
|
} |
363 |
|
|
364 |
|
elsif(exists($self->{$1})) |
365 |
|
{ |
366 |
|
$self->{$1}; |
367 |
|
} |
368 |
|
else |
369 |
|
{ |
370 |
|
''; |
371 |
|
} |
372 |
|
/gex; |
373 |
|
|
374 |
|
$template; |
375 |
|
} |
376 |
|
|
377 |
1; |
1; |
378 |
############################################################################EOF |
############################################################################EOF |