package MyHandler; use strict; use POE; sub new { my $class = shift; my $self = bless { }, $class; $self->initialize(@_); return $self; } sub initialize { my $self = shift; my %args = @_; my $k_munge; foreach my $k (keys %args) { $k_munge = $k; $k_munge =~ s/([a-z])([A-Z])/$1_$2/g; $self->{uc ($k_munge)} = $args{$k}; } } sub retrieve_jobs { my($kernel, $obj) = @_[KERNEL, OBJECT]; return splice(@{$obj->{JOBS}}, 0, 1); } sub spawn { my $class = shift; my $self = $class->new(@_); POE::Session->create( $self->states, ); return $self; } sub states { my $self = shift; return ( object_states => [ $self => [ qw(_start _stop handle_response apply_policy retrieve_jobs) ] ] ); } sub handle_response { my($response) = @_[ARG0]; my $filename = time; open F, ">$filename" or die "$!:$filename"; print F $response->{notes}->{http_response}->as_string; close F; } sub _start { $_[KERNEL]->alias_set( 'handler' ); } sub _stop { $_[KERNEL]->alias_remove( 'handler' ); } sub apply_policy { 1 } 1;