/[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 45 by knops.gerd, Mon Feb 4 19:02:49 2008 UTC revision 47 by knops.gerd, Mon Feb 4 21:06:42 2008 UTC
# Line 169  sub addSubscriber { Line 169  sub addSubscriber {
169          my $subscriber=shift;          my $subscriber=shift;
170          my $startId=shift;          my $startId=shift;
171          my $persist=shift;          my $persist=shift;
172            my $mode=shift || '';
173            my $userAgent=shift || '';
174                    
175          # Note: negative $startId means go back that many messages          # Note: negative $startId means go back that many messages
176                    
177          push(@{$self->{'subscribers'}},$subscriber) if($persist);          push(@{$self->{'subscribers'}},$subscriber) if($persist);
178                    
179            &::syslog('info','',
180                    'joinchannel',
181                    $subscriber->{'subscriberID'},
182                    $self->{'name'},
183                    $mode,
184                    $startId,
185                    $userAgent
186            );
187            
188          my $startIndex=$self->indexForMessageID($startId);          my $startIndex=$self->indexForMessageID($startId);
189          return unless(defined($startIndex));          return unless(defined($startIndex));
190                    
# Line 191  sub addSubscriber { Line 202  sub addSubscriber {
202  sub removeSubscriber {  sub removeSubscriber {
203          my $self=shift;          my $self=shift;
204          my $subscriber=shift;          my $subscriber=shift;
205            my $reason=shift ||'unknown';
206                    
207          my $idx=undef;          my $idx=undef;
208          for(my $i=0;$i<scalar(@{$self->{'subscribers'}});$i++)          for(my $i=0;$i<scalar(@{$self->{'subscribers'}});$i++)
# Line 205  sub removeSubscriber { Line 217  sub removeSubscriber {
217          if(defined($idx))          if(defined($idx))
218          {          {
219                  splice(@{$self->{'subscribers'}},$idx,1);                  splice(@{$self->{'subscribers'}},$idx,1);
220                    
221                    &::syslog('info','',
222                            'leavechannel',
223                            $subscriber->{'subscriberID'},
224                            $self->{'name'},
225                            $subscriber->{'ConnectionStart'},
226                            $subscriber->{'MessageCount'},
227                            $subscriber->{'bytesWritten'},
228                            $reason
229                    );
230          }          }
231                    
232          $self->checkExpiration();          $self->checkExpiration();
# Line 228  sub addMessage { Line 250  sub addMessage {
250          $self->trimMessageStoreBySize();          $self->trimMessageStoreBySize();
251                    
252          map { $_->sendMessages($message) } @{$self->{'subscribers'}};          map { $_->sendMessages($message) } @{$self->{'subscribers'}};
253            
254            $message;
255  }  }
256    
257  sub messageCount {  sub messageCount {
# Line 292  sub indexForMessageID { Line 316  sub indexForMessageID {
316          #          #
317          return undef unless(defined($id));          return undef unless(defined($id));
318                    
319          my $numMessages=scalar(scalar(@{$self->{'messages'}}));          my $numMessages=scalar(@{$self->{'messages'}});
320                    
321          return undef unless($numMessages);          return undef unless($numMessages);
322          return -1 unless($id ne '');          return -1 unless($id ne '');
# Line 327  sub indexForMessageID { Line 351  sub indexForMessageID {
351          return $low;          return $low;
352  }  }
353    
354    sub lastMsgID {
355            my $self=shift;
356            
357            my $numMessages=scalar(@{$self->{'messages'}});
358            
359            return 'undefined' unless($numMessages>0);
360            
361            @{$self->{'messages'}}[-1]->id();
362    }
363    
364  sub descriptionWithTemplate {  sub descriptionWithTemplate {
365          my $self=shift;          my $self=shift;
366          my $template=shift;          my $template=shift;
# Line 344  sub descriptionWithTemplate { Line 378  sub descriptionWithTemplate {
378                  {                  {
379                          $self->subscriberCount();                          $self->subscriberCount();
380                  }                  }
381                    elsif($1 eq 'lastMsgID')
382                    {
383                            $self->lastMsgID();
384                    }
385                    
386                  elsif(exists($self->{$1}))                  elsif(exists($self->{$1}))
387                  {                  {
388                          $self->{$1};                          $self->{$1};

Legend:
Removed from v.45  
changed lines
  Added in v.47

  ViewVC Help
Powered by ViewVC 1.1.26