/[meteor]/googlecode.com/svn/trunk/Meteor/Channel.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /googlecode.com/svn/trunk/Meteor/Channel.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 25 by knops.gerd, Sun May 20 19:40:53 2007 UTC revision 46 by knops.gerd, Mon Feb 4 19:24:25 2008 UTC
# Line 77  sub listChannels { Line 77  sub listChannels {
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;
# Line 165  sub addSubscriber { Line 182  sub addSubscriber {
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 {
# Line 216  sub addMessage { Line 227  sub addMessage {
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 {
# Line 282  sub indexForMessageID { Line 294  sub indexForMessageID {
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 '');
# Line 317  sub indexForMessageID { Line 329  sub indexForMessageID {
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

Legend:
Removed from v.25  
changed lines
  Added in v.46

  ViewVC Help
Powered by ViewVC 1.1.26