You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apreq-cvs@httpd.apache.org by jo...@apache.org on 2005/05/16 21:58:58 UTC
svn commit: r170440 - in /httpd/apreq/trunk/glue/perl/xsbuilder:
APR/Request/Hook/ APR/Request/Hook/Hook.xs APR/Request/Parser/
APR/Request/Parser/Parser.xs maps/apreq_functions.map maps/apreq_types.map
typemap
Author: joes
Date: Mon May 16 12:58:57 2005
New Revision: 170440
URL: http://svn.apache.org/viewcvs?rev=170440&view=rev
Log:
Add preliminary parser/hook perl APIs.
Added:
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Hook/
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Hook/Hook.xs
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Parser/
httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Parser/Parser.xs
Modified:
httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_functions.map
httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_types.map
httpd/apreq/trunk/glue/perl/xsbuilder/typemap
Added: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Hook/Hook.xs
URL: http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Hook/Hook.xs?rev=170440&view=auto
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Hook/Hook.xs (added)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Hook/Hook.xs Mon May 16 12:58:57 2005
@@ -0,0 +1,60 @@
+MODULE = APR::Request::Hook PACKAGE = APR::Request::Hook
+
+APR::Request::Hook
+make(class, pool, hook, next)
+ apreq_xs_subclass_t class
+ APR::Pool pool
+ apreq_hook_function_t hook
+ APR::Request::Hook next
+
+ CODE:
+ RETVAL = apreq_hook_make(pool, hook, next, NULL);
+
+ OUTPUT:
+ RETVAL
+
+APR::Request::Hook
+disable_uploads(class, pool, next)
+ apreq_xs_subclass_t class
+ APR::Pool pool
+ APR::Request::Hook next
+ CODE:
+ RETVAL = apreq_hook_make(pool, apreq_hook_disable_uploads,
+ next, NULL);
+ OUTPUT:
+ RETVAL
+
+APR::Request::Hook
+apr_xml_parser(class, pool, next)
+ apreq_xs_subclass_t class
+ APR::Pool pool
+ APR::Request::Hook next
+ CODE:
+ RETVAL = apreq_hook_make(pool, apreq_hook_apr_xml_parser,
+ next, NULL);
+ OUTPUT:
+ RETVAL
+
+APR::Request::Hook
+find_param(class, pool, next, name)
+ apreq_xs_subclass_t class
+ APR::Pool pool
+ APR::Request::Hook next
+ char *name
+ CODE:
+ RETVAL = apreq_hook_make(pool, apreq_hook_find_param,
+ next, name);
+ OUTPUT:
+ RETVAL
+
+APR::Request::Hook
+discard_brigade(class, pool, next)
+ apreq_xs_subclass_t class
+ APR::Pool pool
+ APR::Request::Hook next
+ CODE:
+ RETVAL = apreq_hook_make(pool, apreq_hook_discard_brigade,
+ next, NULL);
+ OUTPUT:
+ RETVAL
+
Added: httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Parser/Parser.xs
URL: http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Parser/Parser.xs?rev=170440&view=auto
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Parser/Parser.xs (added)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/APR/Request/Parser/Parser.xs Mon May 16 12:58:57 2005
@@ -0,0 +1,111 @@
+MODULE = APR::Request::Parser PACKAGE = APR::Request::Parser
+
+APR::Request::Parser
+make(class, pool, ba, ct, parser, blim, tdir, hook)
+ apreq_xs_subclass_t class
+ APR::Pool pool
+ APR::BucketAlloc ba
+ char *ct
+ apreq_parser_function_t parser
+ apr_size_t blim
+ char *tdir
+ APR::Request::Hook hook
+
+ CODE:
+ RETVAL = apreq_parser_make(pool, ba, ct, parser, blim, tdir, hook, NULL);
+
+ OUTPUT:
+ RETVAL
+
+APR::Request::Parser
+generic(class, pool, ba, ct, blim, tdir, hook)
+ apreq_xs_subclass_t class
+ APR::Pool pool
+ APR::BucketAlloc ba
+ char *ct
+ apr_size_t blim
+ char *tdir
+ APR::Request::Hook hook
+
+ CODE:
+ RETVAL = apreq_parser_make(pool, ba, ct, apreq_parse_generic,
+ blim, tdir, hook, NULL);
+
+ OUTPUT:
+ RETVAL
+
+APR::Request::Parser
+headers(class, pool, ba, ct, blim, tdir, hook)
+ apreq_xs_subclass_t class
+ APR::Pool pool
+ APR::BucketAlloc ba
+ char *ct
+ apr_size_t blim
+ char *tdir
+ APR::Request::Hook hook
+
+ CODE:
+ RETVAL = apreq_parser_make(pool, ba, ct, apreq_parse_headers,
+ blim, tdir, hook, NULL);
+
+ OUTPUT:
+ RETVAL
+
+APR::Request::Parser
+urlencoded(class, pool, ba, ct, blim, tdir, hook)
+ apreq_xs_subclass_t class
+ APR::Pool pool
+ APR::BucketAlloc ba
+ char *ct
+ apr_size_t blim
+ char *tdir
+ APR::Request::Hook hook
+
+ CODE:
+ RETVAL = apreq_parser_make(pool, ba, ct, apreq_parse_urlencoded,
+ blim, tdir, hook, NULL);
+
+ OUTPUT:
+ RETVAL
+
+
+APR::Request::Parser
+multipart(class, pool, ba, ct, blim, tdir, hook)
+ apreq_xs_subclass_t class
+ APR::Pool pool
+ APR::BucketAlloc ba
+ char *ct
+ apr_size_t blim
+ char *tdir
+ APR::Request::Hook hook
+
+ CODE:
+ RETVAL = apreq_parser_make(pool, ba, ct, apreq_parse_multipart,
+ blim, tdir, hook, NULL);
+
+ OUTPUT:
+ RETVAL
+
+APR::Request::Parser
+default(class, pool, ba, ct, blim, tdir, hook)
+ apreq_xs_subclass_t class
+ APR::Pool pool
+ APR::BucketAlloc ba
+ char *ct
+ apr_size_t blim
+ char *tdir
+ APR::Request::Hook hook
+ PREINIT:
+ apreq_parser_function_t parser;
+
+
+ CODE:
+ parser = apreq_parser(ct);
+ if (parser == NULL)
+ XSRETURN_UNDEF;
+
+ RETVAL = apreq_parser_make(pool, ba, ct, parser,
+ blim, tdir, hook, NULL);
+
+ OUTPUT:
+ RETVAL
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_functions.map
URL: http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_functions.map?rev=170440&r1=170439&r2=170440&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_functions.map (original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_functions.map Mon May 16 12:58:57 2005
@@ -49,3 +49,10 @@
MODULE=APR::Request::Param PACKAGE=APR::Request::Brigade::IO PREFIX=APR__Request__Brigade__IO_
DEFINE_read | apreq_xs_brigade_read |
DEFINE_readline | apreq_xs_brigade_readline |
+
+MODULE=APR::Request::Hook PACKAGE=APR::Request::Hook PREFIX=apreq_hook_
+apreq_hook_run
+
+MODULE=APR::Request::Parser PACKAGE=APR::Request::Parser PREFIX=apreq_parser_
+apreq_parser_run
+apreq_parser_add_hook
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_types.map
URL: http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_types.map?rev=170440&r1=170439&r2=170440&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_types.map (original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/maps/apreq_types.map Mon May 16 12:58:57 2005
@@ -27,5 +27,5 @@
struct apreq_xs_error_t | APR::Request::Error | T_APREQ_ERROR
struct apreq_xs_cookie_table_t | APR::Request::Cookie::Table | T_HASHOBJ
const apreq_xs_param_table_t * | APR::Request::Param::Table | T_HASHOBJ
-apreq_xs_subclass_t | SUBCLASS
struct apreq_parser_t | APR::Request::Parser
+struct apreq_hook_t | APR::Request::Hook
Modified: httpd/apreq/trunk/glue/perl/xsbuilder/typemap
URL: http://svn.apache.org/viewcvs/httpd/apreq/trunk/glue/perl/xsbuilder/typemap?rev=170440&r1=170439&r2=170440&view=diff
==============================================================================
--- httpd/apreq/trunk/glue/perl/xsbuilder/typemap (original)
+++ httpd/apreq/trunk/glue/perl/xsbuilder/typemap Mon May 16 12:58:57 2005
@@ -11,16 +11,17 @@
Apache2::RequestRec T_APACHEOBJ
APR::Request::Cookie::Table T_HASHOBJ
APR::Request T_APREQ_HANDLE
-APR::Request::Parser T_PTROBJ
+APR::Request::Parser T_PTROBJ
+APR::Request::Hook T_PTROBJ
apr_status_t T_IV
const void * T_PTR
const char * T_PV
apreq_xs_subclass_t T_SUBCLASS
-const apreq_xs_subclass_t * T_SUBCLASS
const apr_size_t T_UV
-apreq_xs_subclass_t * T_SUBCLASS
apr_size_t T_UV
unsigned char T_UV
+apreq_parser_function_t T_APREQ_PARSER_FUNCTION
+apreq_hook_function_t T_APREQ_HOOK_FUNCTION
INPUT
T_APREQ_HANDLE
@@ -106,6 +107,11 @@
\"(expecting an %s derived object)\", \"${ntype}\");
}
+T_APREQ_PARSER_FUNCTION
+ $var = INT2PTR(apreq_parser_function_t, SvObjIV($arg))
+
+T_APREQ_HOOK_FUNCTION
+ $var = INT2PTR(apreq_hook_function_t, SvObjIV($arg))
OUTPUT
T_APREQ_HANDLE
@@ -142,3 +148,8 @@
T_APREQ_PARAM
$arg = apreq_xs_param2sv(aTHX_ $var, class, parent);
+T_APREQ_PARSER_FUNCTION
+ $arg = sv_setref_pv(newSV(0), class, $var);
+
+T_APREQ_HOOK_FUNCTION
+ $arg = sv_setref_pv(newSV(0), class, $var);