/[cvs]/nfo/perl/libs/POE/Component/ServiceRegistrar.pm
ViewVC logotype

Diff of /nfo/perl/libs/POE/Component/ServiceRegistrar.pm

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

revision 1.1 by joko, Sun Jun 29 01:35:30 2003 UTC revision 1.3 by joko, Tue Jul 1 13:07:19 2003 UTC
# Line 2  Line 2 
2  ##  $Id$  ##  $Id$
3  ## ------------------------------------------------------------------------  ## ------------------------------------------------------------------------
4  ##  $Log$  ##  $Log$
5    ##  Revision 1.3  2003/07/01 13:07:19  joko
6    ##  - removed "waste_time" here
7    ##  + renamed response state to "on_response"
8    ##
9  ##  Revision 1.1  2003/06/29 01:35:30  joko  ##  Revision 1.1  2003/06/29 01:35:30  joko
10  ##  initial commit  ##  initial commit
11  ##  ##
# Line 46  sub _start { Line 50  sub _start {
50    my ( $self, $kernel, $heap ) = @_[ OBJECT, KERNEL, HEAP ];    my ( $self, $kernel, $heap ) = @_[ OBJECT, KERNEL, HEAP ];
51    $self->debug("_start");    $self->debug("_start");
52        
53    # V1 - Announce ourselves as global singleton at Kernel side.    # V1 - Announce ourselves as "global singleton" session at Kernel side.
54    $kernel->alias_set("ServiceRegistrar");    $kernel->alias_set("ServiceRegistrar");
55    
56    # V2 - Also announce to the IKC infrastructure component.    # V2 - Also announce to the IKC infrastructure component.
# Line 80  sub register_lease { Line 84  sub register_lease {
84    $kernel->post('IKC', 'publish', 'ServiceRegistrar', [qw( renew_lease )]);    $kernel->post('IKC', 'publish', 'ServiceRegistrar', [qw( renew_lease )]);
85    
86    # send response back to client session - does it actually work asynchronously?    # send response back to client session - does it actually work asynchronously?
87    $kernel->post($_[SENDER], 'response', 'REG_OK');    $kernel->post($_[SENDER], 'on_response', 'REG_OK');
88        
89  };  };
90    
# Line 96  sub renew_lease { Line 100  sub renew_lease {
100    #$self->debug($sender->[0]->{from}->{kernel});    #$self->debug($sender->[0]->{from}->{kernel});
101        
102    # postback value via rsvp-mechanism (see perldoc POE::Component::IKC::Responder)    # postback value via rsvp-mechanism (see perldoc POE::Component::IKC::Responder)
103    return 'LEASE_OK2';    return 'LEASE_OK';
104  }  }
105    
106    
# Line 112  sub remote_register { Line 116  sub remote_register {
116  }  }
117    
118    
 #------------------------------------------------------------------------------  
 # This event keeps this POE kernel alive.  
 # (stolen from POE::Component::IKC::Server, but not used 'til now...)  
 sub waste_time  
 {  
     my($kernel, $heap)=@_[KERNEL, HEAP];  
     return if $heap->{'is a child'};  
   
     unless($heap->{'been told we are parent'}) {  
         warn "$$: Telling everyone we are the parent\n";  
         $heap->{'been told we are parent'}=1;  
         $kernel->signal($kernel, '__parent');  
     }  
     if($heap->{'die'}) {  
         DEBUG and warn "$$: Orderly shutdown\n";  
     } else {  
         $kernel->delay('waste_time', 60);  
     }  
     return;  
 }  
   
119  1;  1;
120  __END__  __END__

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed