[poe-commits] poe/lib/POE Session.pm,1.107,1.108
Brought to you by:
rcaputo
From: <lo...@us...> - 2005-01-28 16:29:56
|
Update of /cvsroot/poe/poe/lib/POE In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19313/lib/POE Modified Files: Session.pm Log Message: Create a instantiate method, so you can override that when you want to process extra parameters when subclassing POE::Session. closes bug #8450 Index: Session.pm =================================================================== RCS file: /cvsroot/poe/poe/lib/POE/Session.pm,v retrieving revision 1.107 retrieving revision 1.108 diff -C2 -d -r1.107 -r1.108 *** Session.pm 28 Jan 2005 07:48:41 -0000 1.107 --- Session.pm 28 Jan 2005 16:29:19 -0000 1.108 *************** *** 164,167 **** --- 164,186 ---- } + sub instantiate { + my $type = shift; + + croak "$type requires a working Kernel" + unless defined $POE::Kernel::poe_kernel; + + my $self = + bless [ { }, # SE_NAMESPACE + { }, # SE_OPTIONS + { }, # SE_STATES + ], $type; + + if (ASSERT_STATES) { + $self->[SE_OPTIONS]->{+OPT_DEFAULT} = 1; + } + + return $self; + } + sub try_alloc { my ($self, @args) = @_; *************** *** 197,211 **** if ((@states > 1) && (ref($states[0]) eq 'POE::Kernel')); ! croak "$type requires a working Kernel" ! unless defined $POE::Kernel::poe_kernel; ! ! my $self = ! bless [ { }, # SE_NAMESPACE ! { }, # SE_OPTIONS ! { }, # SE_STATES ! ], $type; ! if (ASSERT_STATES) { ! $self->[SE_OPTIONS]->{+OPT_DEFAULT} = 1; ! } # Scan all arguments. It mainly expects them to be in pairs, except --- 216,220 ---- if ((@states > 1) && (ref($states[0]) eq 'POE::Kernel')); ! my $self = $type->instantiate (\@states); # Scan all arguments. It mainly expects them to be in pairs, except *************** *** 371,385 **** my %params = @params; ! croak "$type requires a working Kernel" ! unless defined $POE::Kernel::poe_kernel; ! ! my $self = ! bless [ { }, # SE_NAMESPACE ! { }, # SE_OPTIONS ! { }, # SE_STATES ! ], $type; ! if (ASSERT_STATES) { ! $self->[SE_OPTIONS]->{+OPT_DEFAULT} = 1; ! } # Process _start arguments. We try to do the right things with what --- 380,384 ---- my %params = @params; ! my $self = $type->instantiate(\%params); # Process _start arguments. We try to do the right things with what |