/[meteor]/googlecode.com/svn/trunk/Meteor/Subscriber.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/Subscriber.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 49 by knops.gerd, Mon Feb 4 22:30:35 2008 UTC
# Line 140  sub processLine { Line 140  sub processLine {
140                          $self->{'mode'}=$2;                          $self->{'mode'}=$2;
141                          my $persist=$self->getConf('Persist');                          my $persist=$self->getConf('Persist');
142                                                    
                         if ($self->{'mode'} eq "xhrinteractive" || $self->{'mode'} eq "iframe" || $self->{'mode'} eq "serversent" || $self->{'mode'} eq "longpoll") {  
                                 $persist=1;  
                                 $self->{'MaxMessageCount'}=1 unless(!($self->{'mode'} eq "longpoll"));  
                         }  
                         if ($self->{'mode'} eq "iframe") {  
                                 $self->{'HeaderTemplateNumber'}=1;  
                         } else {  
                                 $self->{'HeaderTemplateNumber'}=2;  
                         }  
                           
143                          my $maxTime=$self->getConf('MaxTime');                          my $maxTime=$self->getConf('MaxTime');
144                          if($maxTime>0)                          if($maxTime>0)
145                          {                          {
# Line 185  sub processLine { Line 175  sub processLine {
175                          if(scalar(keys %{$channels}))                          if(scalar(keys %{$channels}))
176                          {                          {
177                                  $self->emitOKHeader();                                  $self->emitOKHeader();
178                                  $self->setChannels($channels,$persist);                                  $self->setChannels($channels,$persist,$self->{'mode'},'');
179                                  $self->close(1) unless($persist);                                  $self->close(1) unless($persist);
180                                  return;                                  return;
181                          }                          }
# Line 215  sub setChannels { Line 205  sub setChannels {
205          my $self=shift;          my $self=shift;
206          my $channels=shift;          my $channels=shift;
207          my $persist=shift;          my $persist=shift;
208            my $mode=shift || '';
209            my $userAgent=shift || '';
210                    
211          foreach my $channelName (keys %{$channels})          foreach my $channelName (keys %{$channels})
212          {          {
# Line 224  sub setChannels { Line 216  sub setChannels {
216                                    
217                  $self->{'channels'}->{$channelName}=$channel if($persist);                  $self->{'channels'}->{$channelName}=$channel if($persist);
218                                    
219                  $channel->addSubscriber($self,$startIndex,$persist);                  $channel->addSubscriber($self,$startIndex,$persist,$mode,$userAgent);
220          }          }
221  }  }
222    
# Line 248  sub emitHeader { Line 240  sub emitHeader {
240          my $self=shift;          my $self=shift;
241          my $status=shift;          my $status=shift;
242                    
243          my $header=undef;          my $header=$self->getConf('HeaderTemplate');
         if(exists($self->{'HeaderTemplateNumber'}))  
         {  
                 my $hn='HeaderTemplate'.$self->{'HeaderTemplateNumber'};  
                   
                 $header=$self->getConf($hn);  
         }  
         $header=$self->getConf('HeaderTemplate') unless(defined($header));  
244                    
245          $header=~s/~([^~]*)~/          $header=~s/~([^~]*)~/
246                  if(!defined($1) || $1 eq '')                  if(!defined($1) || $1 eq '')
# Line 337  sub closeChannel { Line 322  sub closeChannel {
322          return unless(exists($self->{'channels'}->{$channelName}));          return unless(exists($self->{'channels'}->{$channelName}));
323                    
324          my $channel=$self->{'channels'}->{$channelName};          my $channel=$self->{'channels'}->{$channelName};
325          $channel->removeSubscriber($self);          $channel->removeSubscriber($self,'channelClose');
326                    
327          delete($self->{'channels'}->{$channelName});          delete($self->{'channels'}->{$channelName});
328                    
329          $self->close() if(scalar(keys %{$self->{'channels'}})==0);          $self->close(0,'channelsClosed') if(scalar(keys %{$self->{'channels'}})==0);
330  }  }
331    
332  sub close {  sub close {
# Line 351  sub close { Line 336  sub close {
336          foreach my $channelName (keys %{$self->{'channels'}})          foreach my $channelName (keys %{$self->{'channels'}})
337          {          {
338                  my $channel=$self->{'channels'}->{$channelName};                  my $channel=$self->{'channels'}->{$channelName};
339                  $channel->removeSubscriber($self);                  $channel->removeSubscriber($self,'subscriberClose');
340          }          }
341          delete($self->{'channels'});          delete($self->{'channels'});
342                    

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

  ViewVC Help
Powered by ViewVC 1.1.26