| 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 |
## |
## |
| 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. |
| 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 |
|
|
| 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 |
|
|
| 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__ |