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