stas        02/03/25 09:00:37

  Modified:    src/docs/2.0/devel/core_explained core_explained.pod
  Log:
  MPXS_ function arguments column clarifications
  
  Revision  Changes    Path
  1.20      +23 -8     
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.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- core_explained.pod        20 Mar 2002 17:44:03 -0000      1.19
  +++ core_explained.pod        25 Mar 2002 17:00:37 -0000      1.20
  @@ -317,6 +317,14 @@
   
   META: complete
   
  +C<MPXS_> functions are final C<XSUBs> and always accept:
  +
  +  aTHX_ I32 items, SP **sp, SV **MARK
  +
  +as their arguments. Whereas C<mpxs_> functions are either intermediate
  +thin wrappers for the existing C functions or functions that do
  +something by themselves. C<MPXS_> functions also can be used for
  +writing thin wrappers for C macros.
   
   =head1 Adding Wrappers for existing APIs and Creating New APIs
   
  @@ -657,13 +665,19 @@
     MODULE=Apache::CoreDemo
     DEFINE_add_subst_sp | MPXS_Apache__CoreDemo_add_subst_sp | ...
   
  -This declaration say that C<MPXS_Apache__CoreDemo_add_subst_sp>
  -function will be called from the XS wrapper for the
  -C<Apache::CoreDemo::add_subst_sp> with arguments:
  +The C<mpxs_> functions declare in the third column the arguments that
  +they expect to receive (and optionally the default values). The
  +C<MPXS> functions are the real C<XSUBs> and therefore they always
  +accept:
   
     aTHX_ I32 items, SP **sp, SV **MARK
   
  -that's what the C<...> part in the third column stands for.
  +as their arguments. Thefore it doesn't matter what is placed in this
  +column when the C<MPXS_> function is declared. Usually for
  +documentation the Perl side arguments are listed. For example you can
  +say:
  +
  +  DEFINE_add_subst_sp | MPXS_Apache__CoreDemo_add_subst_sp | x, y
   
   In this function we manually manipulate the stack to retrieve the
   arguments passed on the Perl side and put the results back onto the
  @@ -811,12 +825,13 @@
   The first column specifies the existing function's name, the second
   tells that the XS wrapper will use the C<MPXS_> prefix, which means
   that the wrapper must be called C<MPXS_apr_power>. The third column
  -specifies the argument names, but no matter what you specify there the
  -C<...> will be passed:
  +specifies the argument names, but for C<MPXS_> no matter what you
  +specify there the C<...> will be passed:
   
     aTHX_ I32 items, SP **sp, SV **MARK
   
  -so you can leave that column empty.
  +so you can leave that column empty, but here we use C<x> and C<y> to
  +remind us that these two arguments are passed from Perl.
   
   If the forth column is empty this function will be called
   C<APR::Foo::power> in the Perl namespace. But you can use that column
  @@ -826,7 +841,7 @@
   
   This function will be available from Perl as C<APR::Foo::pow>.
   
  -Similarly you can write a C<MPXS_odperl_power> wrapper for a
  +Similarly you can write a C<MPXS_modperl_power> wrapper for a
   C<modperl_power()> function but here you have to explicitly give the
   Perl function's name in the forth column:
   
  
  
  

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

Reply via email to