| =head1 NAME |
| |
| Apache::*::Table - Table classes for Apache::Request, Apache::Upload, and Apache::Cookie. |
| |
| =for testing |
| use Apache2; |
| use Apache::Upload; |
| use Apache::Cookie; |
| use APR::Pool; |
| use APR::Table; |
| $r = APR::Pool->new; # environment object |
| |
| |
| |
| =head1 SYNOPSIS |
| |
| =for example begin |
| |
| my $table = Apache::Request::Table->new($r); |
| $table->{test} = 1; |
| $table->{foo} = "bar1"; |
| $table->add(foo => "bar2"); |
| |
| { |
| my $do_data = ""; |
| $table->do( sub { $do_data .= "@_,"; 1 } ); |
| ok $do_data eq "test 1,foo bar1,foo bar2,"; |
| } |
| |
| =for example end |
| |
| =for example_testing |
| #run the above tests, don't just compile them |
| |
| |
| |
| |
| =head1 DESCRIPTION |
| |
| This manpage documents the Apache::*::Table classes provided by the |
| Apache::Request, Apache::Upload, and Apache::Cookie modules. Table |
| classes are all derived from APR::Table, however since the underlying |
| values they contain are not simple character arrays, the C<merge>, C<compress>, |
| and C<overlap> methods from APR::Table are not implemented. |
| |
| |
| |
| |
| =head1 Apache::Request::Table |
| |
| These tables arise as parameter tables generated by the C<args>, C<body>, and |
| C<param> methods of Apache::Request. Their values are representable |
| by orinary perl scalars, but unlike APR::Table, the '\0' character may |
| be safely embedded in a value without truncating it. |
| |
| |
| =for example begin |
| |
| my $table = Apache::Request::Table->new($r); |
| my $value = "bar\0quux"; |
| $table->{foo} = $value; |
| |
| =for example end |
| |
| =for example_testing |
| is $table->{foo}, $value; |
| |
| |
| |
| |
| =head1 Apache::Upload::Table |
| |
| These tables arise from the C<Apache::Request::upload> method (which is |
| provided by Apache::Upload). Their values are Apache::Upload objects. |
| |
| |
| =for example begin |
| |
| my $upload = Apache::Upload->new($r, name => "foo", file => __FILE__); |
| my $table = Apache::Upload::Table->new($r); |
| $table->add($upload); |
| $upload = $table->{foo}; |
| |
| =for example end |
| |
| =for example_testing |
| ok $upload->isa("Apache::Upload"); |
| |
| |
| |
| |
| =head1 Apache::Cookie::Table |
| |
| These tables arise from the C<cookies> method of Apache::Cookie::Jar, and |
| their values are Apache::Cookie objects (or Apache::Cookie derived objects- |
| see the discussion of C<VALUE_CLASS> in L<Apache::Cookie>). |
| |
| =for example begin |
| |
| my $cookie = Apache::Cookie->new($r, name =>"foo", value => "bar"); |
| my $table = Apache::Cookie::Table->new($r); |
| $table->{foo} = $cookie; |
| $cookie = $table->{foo}; |
| |
| =for example end |
| ok $cookie->isa("Apache::Cookie"); |
| |
| =for example_testing |
| |
| |
| |
| |
| =head1 SEE ALSO |
| |
| L<Apache::Request>, L<Apache::Cookie>, L<Apache::Upload> |
| APR::Table(3) |
| |
| |
| |
| |
| =head1 COPYRIGHT |
| |
| Copyright 2003-2004 The Apache Software Foundation |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |