home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl_mlb.zip / CGI / Apache.pm next >
Text File  |  1997-11-25  |  2KB  |  104 lines

  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.01 $)[1];
  8. $CGI::DefaultClass = 'CGI::Apache';
  9. $CGI::Apache::AutoloadClass = 'CGI';
  10.  
  11. sub import {
  12.     my $self = shift;
  13.     my ($callpack, $callfile, $callline) = caller;
  14.     ${"${callpack}::AutoloadClass"} = 'CGI';
  15. }
  16.  
  17. sub new {
  18.     my($class) = shift;
  19.     my($r) = Apache->request;
  20.     %ENV = $r->cgi_env unless defined $ENV{GATEWAY_INTERFACE}; #PerlSetupEnv On 
  21.     my $self = $class->SUPER::new(@_);
  22.     $self->{'.req'} = $r;
  23.     $self;
  24. }
  25.  
  26. sub header {
  27.     my ($self,@rest) = CGI::self_or_default(@_);
  28.     my $r = $self->{'.req'};
  29.     $r->basic_http_header;
  30.     return CGI::header($self,@rest);
  31. }             
  32.  
  33. sub print {
  34.     my($self,@rest) = CGI::self_or_default(@_);
  35.     $self->{'.req'}->print(@rest);
  36. }
  37.  
  38. sub read_from_client {
  39.     my($self, $fh, $buff, $len, $offset) = @_;
  40.     my $r = $self->{'.req'} || Apache->request;
  41.     return $r->read($$buff, $len, $offset);
  42. }
  43.  
  44. sub new_MultipartBuffer {
  45.     my $self = shift;
  46.     my $new = CGI::Apache::MultipartBuffer->new($self, @_); 
  47.     $new->{'.req'} = $self->{'.req'} || Apache->request;
  48.     return $new;
  49. }
  50.  
  51. package CGI::Apache::MultipartBuffer;
  52. use vars qw(@ISA);
  53. @ISA = qw(MultipartBuffer);
  54.  
  55. $CGI::Apache::MultipartBuffer::AutoloadClass = 'MultipartBuffer';
  56. *CGI::Apache::MultipartBuffer::read_from_client = 
  57.     \&CGI::Apache::read_from_client;
  58.  
  59.  
  60. 1;
  61.  
  62. __END__
  63.  
  64. =head1 NAME
  65.  
  66. CGI::Apache - Make things work with CGI.pm against Perl-Apache API
  67.  
  68. =head1 SYNOPSIS
  69.  
  70.  require CGI::Apache;
  71.  
  72.  my $q = new Apache::CGI;
  73.  
  74.  $q->print($q->header);
  75.  
  76.  #do things just like you do with CGI.pm
  77.  
  78. =head1 DESCRIPTION
  79.  
  80. When using the Perl-Apache API, your applications are faster, but the
  81. enviroment is different than CGI.
  82. This module attempts to set-up that environment as best it can.
  83.  
  84. =head1 NOTE 1
  85.  
  86. This module used to be named Apache::CGI.  Sorry for the confusion.
  87.  
  88. =head1 NOTE 2
  89.  
  90. If you're going to inherit from this class, make sure to "use" it
  91. after your package declaration rather than "require" it.  This is
  92. because CGI.pm does a little magic during the import() step in order
  93. to make autoloading work correctly.
  94.  
  95. =head1 SEE ALSO
  96.  
  97. perl(1), Apache(3), CGI(3)
  98.  
  99. =head1 AUTHOR
  100.  
  101. 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>
  102.  
  103. =cut
  104.