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

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

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

revision 1.5 by joko, Tue Jul 1 18:13:15 2003 UTC revision 1.6 by joko, Wed Dec 3 04:01:05 2003 UTC
# Line 2  Line 2 
2  ##  $Id$  ##  $Id$
3  ## ------------------------------------------------------------------------  ## ------------------------------------------------------------------------
4  ##  $Log$  ##  $Log$
5    ##  Revision 1.6  2003/12/03 04:01:05  joko
6    ##  somehow got this to re-connect transparently if server-side goes down
7    ##
8  ##  Revision 1.5  2003/07/01 18:13:15  joko  ##  Revision 1.5  2003/07/01 18:13:15  joko
9  ##  fixed: shutdown and session-unaliasing seems to be done by gc now...?  ##  fixed: shutdown and session-unaliasing seems to be done by gc now...?
10  ##  ##
# Line 100  sub boot_intercom { Line 103  sub boot_intercom {
103        
104    # start up the watchdog which monitors the required IKC intercom session    # start up the watchdog which monitors the required IKC intercom session
105    #$kernel->yield('waste_time');    #$kernel->yield('waste_time');
106    #$kernel->delay('watchdog', 2);    $kernel->delay('watchdog', 2);
107    
108  };  };
109    
# Line 111  sub start_session { Line 114  sub start_session {
114    
115  sub build {  sub build {
116    my $self = shift;    my $self = shift;
117    print "build", "\n";    #print "build", "\n";
118    # create sessions that depend on the foreign kernel.    # create sessions that depend on the foreign kernel.
119    POE::Component::LookupClient::Session->new();    POE::Component::LookupClient::Session->new();
120  }  }
# Line 122  sub watchdog { Line 125  sub watchdog {
125    
126    #$kernel->post( IKC => 'monitor', '*' => { register => 'start_session' });    #$kernel->post( IKC => 'monitor', '*' => { register => 'start_session' });
127    
128    #if (not defined $kernel->alias_resolve('DeviceClient')) {    if (not defined $kernel->alias_resolve('DeviceClient')) {
129    if (not defined $kernel->alias_resolve('IKC')) {    #if (not defined $kernel->alias_resolve('IKC')) {
130      print STDERR "Session died, trying to restart!", "\n";      print STDERR "Session died, trying to restart!", "\n";
131      #$kernel->yield('boot_intercom');      $kernel->yield('boot_intercom');
132      return;      return;
133    }    }
134        
# Line 199  sub _start { Line 202  sub _start {
202    
203    #$kernel->alias_set('');    #$kernel->alias_set('');
204    #$kernel->post();    #$kernel->post();
205      
206      #sub POE::Component::IKC::Responder::DEBUG { 1 }
207      #sub POE::Component::IKC::Responder::Object::DEBUG { 1 }
208    
209    # set up communication channel for asynchronous responses    # set up communication channel for asynchronous responses
210    $kernel->alias_set('DeviceClient');    $kernel->alias_set('DeviceClient');
211    $kernel->post('IKC', 'publish', 'DeviceClient', [qw( on_response )]);    $kernel->post('IKC', 'publish', 'DeviceClient', [qw( on_response )]);
# Line 247  sub on_response { Line 253  sub on_response {
253    # If registration succeeded, start the renewal cycle.    # If registration succeeded, start the renewal cycle.
254    if ($payload eq 'REG_OK') {    if ($payload eq 'REG_OK') {
255      $self->debug("Starting lease renewal loop.");      $self->debug("Starting lease renewal loop.");
256      #$kernel->post( IKC => 'monitor', '*' => { shutdown => 'remote_shutdown' });      $kernel->post( IKC => 'monitor', '*' => { unregister => 'remote_shutdown' });
257        $kernel->post( IKC => 'monitor', '*' => { shutdown => 'remote_shutdown' });
258      $kernel->yield( 'renew_lease' );      $kernel->yield( 'renew_lease' );
259    
260    } elsif ($payload eq 'LEASE_OK') {    } elsif ($payload eq 'LEASE_OK') {
# Line 316  sub renew_lease { Line 323  sub renew_lease {
323    #print "resp: $resp", "\n";    #print "resp: $resp", "\n";
324    
325    # and again...    # and again...
326    $kernel->delay('renew_lease', 15);    $kernel->delay('renew_lease', 5);
327    #$kernel->delay_set('renew_lease', 15);    #$kernel->delay_set('renew_lease', 15);
328    #$kernel->delay_add('renew_lease', 15);    #$kernel->delay_add('renew_lease', 15);
329    
330    # timeout!?    # timeout!?
331    #$kernel->delay('remote_timeout', 20);    #$kernel->delay('remote_timeout', 20);
332    $kernel->delay_add('remote_timeout', 20);    $kernel->delay_add('remote_timeout', 7);
333    #$kernel->delay_set('remote_timeout', 5);    #$kernel->delay_set('remote_timeout', 5);
334    #$kernel->delay_set('remote_timeout', 20);    #$kernel->delay_set('remote_timeout', 20);
335    
# Line 382  sub remote_timeout { Line 389  sub remote_timeout {
389    #return;    #return;
390        
391    #$kernel->post( 'IKC' => 'shutdown' );    #$kernel->post( 'IKC' => 'shutdown' );
392      #$kernel->post( 'IKC' => 'blah' );
393    #$kernel->run_one_timeslice();    #$kernel->run_one_timeslice();
394    #$kernel->run_one_timeslice();    #$kernel->run_one_timeslice();
395    
396    #$kernel->alias_remove('DeviceClient');    $kernel->post('DeviceClient', 'stop');
397      
398      $kernel->alias_remove('DeviceClient');
399      $kernel->alias_remove('IKC');
400      
401    #$kernel->run_one_timeslice();    #$kernel->run_one_timeslice();
402    #$kernel->run_one_timeslice();    #$kernel->run_one_timeslice();
403      
404      #$kernel->yield('_start');
405    
406  }  }
407    

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

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