[inseperable changes from patch from perl-5.003_95 to perl-5.003_86]
[p5sagit/p5-mst-13.2.git] / lib / CGI / Apache.pm
1 package CGI::Apache;
2 use Apache ();
3 use vars qw(@ISA $VERSION);
4 require CGI;
5 @ISA = qw(CGI);
6
7 $VERSION = (qw$Revision: 1.00 $)[1];
8 $CGI::DefaultClass = 'CGI::Apache';
9 $CGI::Apache::AutoloadClass = 'CGI';
10
11 sub new {
12     my($class) = shift;
13     my($r) = Apache->request;
14     %ENV = $r->cgi_env unless defined $ENV{GATEWAY_INTERFACE}; #PerlSetupEnv On 
15     my $self = $class->SUPER::new(@_);
16     $self->{'.req'} = $r;
17     $self;
18 }
19
20 sub header {
21     my ($self,@rest) = CGI::self_or_default(@_);
22     my $r = $self->{'.req'};
23     $r->basic_http_header;
24     return CGI::header($self,@rest);
25 }                    
26
27 sub print {
28     my($self,@rest) = CGI::self_or_default(@_);
29     $self->{'.req'}->print(@rest);
30 }
31
32 sub read_from_client {
33     my($self, $fh, $buff, $len, $offset) = @_;
34     my $r = $self->{'.req'} || Apache->request;
35     return $r->read($$buff, $len, $offset);
36 }
37
38 sub new_MultipartBuffer {
39     my $self = shift;
40     my $new = CGI::Apache::MultipartBuffer->new($self, @_); 
41     $new->{'.req'} = $self->{'.req'} || Apache->request;
42     return $new;
43 }
44
45 package CGI::Apache::MultipartBuffer;
46 use vars qw(@ISA);
47 @ISA = qw(MultipartBuffer);
48
49 $CGI::Apache::MultipartBuffer::AutoloadClass = 'MultipartBuffer';
50 *CGI::Apache::MultipartBuffer::read_from_client = 
51     \&CGI::Apache::read_from_client;
52
53
54 1;
55
56 __END__
57
58 =head1 NAME
59
60 CGI::Apache - Make things work with CGI.pm against Perl-Apache API
61
62 =head1 SYNOPSIS
63
64  require CGI::Apache;
65
66  my $q = new Apache::CGI;
67
68  $q->print($q->header);
69
70  #do things just like you do with CGI.pm
71
72 =head1 DESCRIPTION
73
74 When using the Perl-Apache API, your applications are faster, but the
75 enviroment is different than CGI.
76 This module attempts to set-up that environment as best it can.
77
78 =head1 NOTE
79
80 This module used to be named Apache::CGI.  Sorry for the confusion.
81
82 =head1 SEE ALSO
83
84 perl(1), Apache(3), CGI(3)
85
86 =head1 AUTHOR
87
88 Doug MacEachern E<lt>dougm@osf.orgE<gt>, hacked over by Andreas König E<lt>a.koenig@mind.deE<gt>, modified by Lincoln Stein <lt>lstein@genome.wi.mit.edu<gt>
89
90 =cut