HTML-EmbeddedPerl

 view release on metacpan or  search on metacpan

EmbeddedPerl.xs  view on Meta::CPAN

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"

#include "ppport.h"

#define __EMBEDDED_MODULE__
#include "twepl_xcore.c"
#undef __EMBEDDED_MODULE__

MODULE = HTML::EmbeddedPerl PACKAGE = HTML::EmbeddedPerl

BOOT:
  /* Register Section */
  twepl_register(aTHX_ file);

SV* ep(...)

  INIT:

mod_twepl/twepl_xcore.c  view on Meta::CPAN


  /* OPTION FLAGS(twepl) */
  twepl_register_constsub(EPL_XS_NAME "\0", "OPT_TAG_NON", OPT_TAG_NON);
  twepl_register_constsub(EPL_XS_NAME "\0", "OPT_TAG_ALL", OPT_TAG_ALL);
  twepl_register_constsub(EPL_XS_NAME "\0", "OPT_TAG_EPL", OPT_TAG_EPL);
  twepl_register_constsub(EPL_XS_NAME "\0", "OPT_TAG_DOL", OPT_TAG_DOL);
  twepl_register_constsub(EPL_XS_NAME "\0", "OPT_TAG_PHP", OPT_TAG_PHP);
  twepl_register_constsub(EPL_XS_NAME "\0", "OPT_TAG_ASP", OPT_TAG_PHP);

  /* OPTION FLAGS(main) */
  #ifndef __EMBEDDED_MODULE__
    twepl_register_constsub("main", "OPT_TAG_NON", OPT_TAG_NON);
    twepl_register_constsub("main", "OPT_TAG_ALL", OPT_TAG_ALL);
    twepl_register_constsub("main", "OPT_TAG_EPL", OPT_TAG_EPL);
    twepl_register_constsub("main", "OPT_TAG_DOL", OPT_TAG_DOL);
    twepl_register_constsub("main", "OPT_TAG_PHP", OPT_TAG_PHP);
    twepl_register_constsub("main", "OPT_TAG_ASP", OPT_TAG_PHP);
  #endif

  /* X-Powered-By */
  #ifndef __MOD_TWEPL__

mod_twepl/twepl_xcore.c  view on Meta::CPAN

}

EXTERN_C int twepl_check_caller(pTHX_ SV *sv, int argc, int argl, const char *name, const char *desc){

  char *pkg;

  if(sv_isobject(sv)){
    pkg = HvNAME(SvSTASH(SvRV(sv)));
    if(strcmp(pkg, EPL_XS_NAME "\0") == 0 || strcmp(pkg, EPL_PM_NAME "\0") == 0){
      if(argc <= argl){
        #ifdef __EMBEDDED_MODULE__
          Perl_warn(aTHX_ "Usage: %s::%s(%s)", EPL_PM_NAME "\0", name, desc);
        #else
          Perl_warn(aTHX_ "Usage: %s::%s(%s)", EPL_XS_NAME "\0", name, desc);
        #endif
        return -1;
      }
      return TRUE;
    } else{
      #ifdef __EMBEDDED_MODULE__
        Perl_warn(aTHX_ "%s: bad caller object found in xsub.", EPL_PM_NAME "\0");
      #else
        Perl_warn(aTHX_ "%s: bad caller object found in xsub.", EPL_XS_NAME "\0");
      #endif
      return -1;
    }
  } else if(argc < argl){
    #ifdef __EMBEDDED_MODULE__
      Perl_warn(aTHX_ "Usage: %s::%s(%s)", EPL_PM_NAME "\0", name, desc);
    #else
      Perl_warn(aTHX_ "Usage: %s::%s(%s)", EPL_XS_NAME "\0", name, desc);
    #endif
    return -1;
  }

  return FALSE;

}

#ifndef __EMBEDDED_MODULE__
EXTERN_C void twepl_xs_init (pTHX);
EXTERN_C void boot_DynaLoader (pTHX_ CV* cv);
EXTERN_C void twepl_xs_init (pTHX){

  AV *isa;
  AV *exp;
  SV *ver;

  /* DynaLoader is a special case */
  newXS("DynaLoader::boot_DynaLoader", boot_DynaLoader, EPL_XS_NAME "\0");

mod_twepl/twepl_xcore.c  view on Meta::CPAN


static void twepl_destroy (PerlInterpreter *twepl, char *buf){

  perl_destruct(twepl);
  perl_free(twepl);
  PERL_SYS_TERM();
  if(buf != NULL) free(buf);

}

#ifndef __EMBEDDED_MODULE__
  #ifdef __MOD_TWEPL__
static int twepl_script_handler(request_rec *obj, char *ifp, int argc, char **argv, char **envp, TWEPL_CONFIG *twepl_conf){
  #else
static int twepl_script_handler(FILE *obj, char *ifp, int argc, char **argv, char **envp, TWEPL_CONFIG *twepl_conf){
  #endif

   PerlInterpreter  *twepl;

              char  *eps;
              char  *epb;



( run in 2.439 seconds using v1.01-cache-2.11-cpan-71847e10f99 )