stas        01/12/31 05:19:00

  Modified:    src/docs/2.0/devel/core_explained core_explained.pod
  Log:
  - complete the example of adding simple enum/const
  
  Revision  Changes    Path
  1.12      +27 -2     
modperl-docs/src/docs/2.0/devel/core_explained/core_explained.pod
  
  Index: core_explained.pod
  ===================================================================
  RCS file: 
/home/cvs/modperl-docs/src/docs/2.0/devel/core_explained/core_explained.pod,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- core_explained.pod        31 Dec 2001 12:13:51 -0000      1.11
  +++ core_explained.pod        31 Dec 2001 13:19:00 -0000      1.12
  @@ -457,13 +457,38 @@
   expression will be used, so in our example all matches
   C</^APR_FLOCK_/> will be imported into the Perl API.
   
  -For example to import an I<filter_type_e> C<enum> for Apache, add:
  +For example to import an I<read_type_e> C<enum> for APR, add:
   
     my %enums_wanted = (
  -      Apache => { map { $_, 1 } qw(filter_type) },
  +      APR => { map { $_, 1 } qw(apr_read_type) },
     );
   
   Notice that I<_e> part at the end of the enum name has gone.
  +
  +After adding/modifying the datastructures make sure to run C<make
  +source_scan> or C<perl build/source_scan.pl> and verify that the
  +wanted constant or enum were picked by the source scanning
  +process. Simply grep I<xs/tables/current> for the wanted string. For
  +example after adding I<apr_read_type_e> enum we can check:
  +
  +  % more xs/tables/current/Apache/ConstantsTable.pm
  +  ...
  +    'read_type' => [
  +      'APR_BLOCK_READ',
  +      'APR_NONBLOCK_READ'
  +    ],
  +
  +Of course the newly added constant or enum's typemap should be
  +declared in the appropriate I<xs/maps/*_types.map> files, so the XS
  +conversion of arguments will be performed correctly. For example
  +I<apr_read_type> is an APR enum so it's declared in
  +I<xs/maps/apr_types.map>:
  +
  +  apr_read_type          | IV
  +
  +C<IV> is used as a typemap, lSince enum is simply an integer. In more
  +complex cases the typemap can be different. (META: examples)
  +
   
   =head1 Maintainers
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to