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