You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by do...@apache.org on 2001/04/04 19:12:08 UTC

cvs commit: modperl-2.0/xs/maps apache_functions.map apache_types.map

dougm       01/04/04 10:12:08

  Modified:    lib/ModPerl FunctionMap.pm WrapXS.pm
               src/modules/perl modperl_types.h
               xs/maps  apache_functions.map apache_types.map
  Added:       t/response/TestAPI lookup_uri.pm
  Log:
  get subrequest api working and add a little test for lookup_uri
  
  Revision  Changes    Path
  1.5       +3 -0      modperl-2.0/lib/ModPerl/FunctionMap.pm
  
  Index: FunctionMap.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/lib/ModPerl/FunctionMap.pm,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- FunctionMap.pm	2001/03/16 02:29:41	1.4
  +++ FunctionMap.pm	2001/04/04 17:12:07	1.5
  @@ -134,6 +134,9 @@
               unless ($package eq 'guess') {
                   $cur{CLASS} = $package;
               }
  +            if ($cur{ISA}) {
  +                $self->{isa}->{ $cur{MODULE} }->{$package} = delete $cur{ISA};
  +            }
           }
           else {
               $cur{CLASS} = $cur{MODULE};
  
  
  
  1.4       +20 -1     modperl-2.0/lib/ModPerl/WrapXS.pm
  
  Index: WrapXS.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/lib/ModPerl/WrapXS.pm,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- WrapXS.pm	2001/03/13 07:09:28	1.3
  +++ WrapXS.pm	2001/04/04 17:12:07	1.4
  @@ -334,6 +334,23 @@
       $class_prefix . $name;
   }
   
  +sub isa_str {
  +    my($self, $module) = @_;
  +    my $str = "";
  +
  +    if (my $isa = $self->typemap->{function_map}->{isa}->{$module}) {
  +        while (my($sub, $base) = each %$isa) {
  +#XXX cannot set isa in the BOOT: section because XSLoader local-ises
  +#ISA during bootstrap
  +#            $str .= qq{    av_push(get_av("$sub\::ISA", TRUE),
  +#                                   newSVpv("$base",0));}
  +            $str .= qq{\@$sub\::ISA = '$base';\n}
  +        }
  +    }
  +
  +    $str;
  +}
  +
   sub write_xs {
       my($self, $module, $functions) = @_;
   
  @@ -398,12 +415,14 @@
   sub write_pm {
       my($self, $module) = @_;
   
  +    my $isa = $self->isa_str($module);
  +
       my $fh = $self->open_class_file($module, '.pm');
       print $fh <<EOF;
   $self->{noedit_warning_hash}
   
   package $module;
  -
  +$isa
   use XSLoader ();
   XSLoader::load __PACKAGE__;
   
  
  
  
  1.32      +1 -0      modperl-2.0/src/modules/perl/modperl_types.h
  
  Index: modperl_types.h
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_types.h,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- modperl_types.h	2001/04/04 05:12:54	1.31
  +++ modperl_types.h	2001/04/04 17:12:07	1.32
  @@ -9,6 +9,7 @@
   
   /* aliases */
   
  +typedef request_rec subrequest_rec;
   typedef apr_array_header_t MpAV;
   typedef apr_table_t        MpHV;
   
  
  
  
  1.1                  modperl-2.0/t/response/TestAPI/lookup_uri.pm
  
  Index: lookup_uri.pm
  ===================================================================
  package TestAPI::lookup_uri;
  
  use strict;
  use warnings FATAL => 'all';
  
  use Apache::Test;
  use Apache::SubRequest ();
  
  sub handler {
      my $r = shift;
  
      my $uri = '/lookup_uri';
      my $subr = $r->lookup_uri($uri);
      die unless $subr->uri eq $uri;
      $subr->run;
  
      0;
  }
  
  1;
  __DATA__
  <Location /lookup_uri>
     SetHandler modperl
     PerlResponseHandler Apache::TestHandler::ok1
  </Location>
  
  
  
  1.9       +17 -11    modperl-2.0/xs/maps/apache_functions.map
  
  Index: apache_functions.map
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- apache_functions.map	2001/04/02 19:30:37	1.8
  +++ apache_functions.map	2001/04/04 17:12:07	1.9
  @@ -51,19 +51,25 @@
    ap_get_limit_xml_body
   >ap_core_translate
   
  -MODULE=Apache::SubRequest   PACKAGE=guess
  - ap_sub_req_lookup_file
  - ap_sub_req_lookup_uri
  - ap_sub_req_method_uri
  - ap_sub_req_output_filter
  - ap_set_sub_req_protocol
  +MODULE=Apache::SubRequest   PACKAGE=Apache::RequestRec
  +?ap_sub_req_output_filter
  +>ap_set_sub_req_protocol
   -ap_finalize_sub_req_protocol
  - ap_internal_redirect
  - ap_internal_redirect_handler
  + ap_internal_redirect         | | r, new_uri
  + ap_internal_redirect_handler | | r, new_uri
   
  -MODULE=Apache::SubRequest    PACKAGE=Apache::SubRequest
  - ap_destroy_sub_req
  - ap_run_sub_req
  +subrequest_rec *:ap_sub_req_lookup_file | | \
  + r, new_file, next_filter=NULL | lookup_file
  +
  +subrequest_rec *:ap_sub_req_lookup_uri  | | \
  + r, new_file, next_filter=NULL | lookup_uri
  +
  +subrequest_rec *:ap_sub_req_method_uri  | | \
  + r, method, new_file, next_filter=NULL | lookup_method_uri
  +
  +PACKAGE=Apache::SubRequest   ISA=Apache::RequestRec
  + ap_destroy_sub_req  | | r | DESTROY
  + ap_run_sub_req      | | r | run
   
   MODULE=Apache::RequestIO   PACKAGE=Apache::RequestRec
    ap_discard_request_body
  
  
  
  1.2       +1 -0      modperl-2.0/xs/maps/apache_types.map
  
  Index: apache_types.map
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/xs/maps/apache_types.map,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- apache_types.map	2001/03/05 03:49:12	1.1
  +++ apache_types.map	2001/04/04 17:12:08	1.2
  @@ -4,6 +4,7 @@
   struct server_addr_rec  | Apache::ServerAddr
   struct conn_rec         | Apache::Connection
   struct request_rec      | Apache::RequestRec
  +struct subrequest_rec   | Apache::SubRequest
   struct process_rec      | Apache::Process
   struct uri_components   | Apache::URI
   struct ap_method_list_t | Apache::MethodList