1use APR::Pool; 2use APR::BucketAlloc; 3 4sub import { 5 my $class = shift; 6 return unless @_; 7 my $pkg = caller; 8 no strict 'refs'; 9 10 for (@_) { 11 *{"$pkg\::$_"} = $class->can($_) 12 or die "Can't find method $_ in class $class"; 13 } 14} 15 16sub param_status { 17 my $req = shift; 18 return $req->args_status || $req->body_status if wantarray; 19 return ($req->args_status, $req->body_status); 20} 21 22sub upload { 23 require APR::Request::Param; 24 my $req = shift; 25 my $body = $req->body or return; 26 my $uploads = $body->uploads($req->pool); 27 $uploads->param_class("APR::Request::Param"); 28 29 return $uploads->get(@_) if @_; 30 return keys %$uploads if wantarray; 31 return $uploads; 32} 33 34package APR::Request::Custom; 35our @ISA = qw/APR::Request/; 36 37package APR::Request::Cookie::Table; 38 39sub EXISTS { 40 my ($t, $key) = @_; 41 return defined $t->FETCH($key); 42} 43 44package APR::Request::Param::Table; 45 46sub EXISTS { 47 my ($t, $key) = @_; 48 return defined $t->FETCH($key); 49} 50