--- IO-AIO/typemap 2006/10/21 23:20:29 1.2 +++ IO-AIO/typemap 2009/11/12 00:01:52 1.9 @@ -1,21 +1,39 @@ aio_req T_AIO aio_req_ornot T_AIO_ORNOT -aio_group T_AIO_GROUP +SV8 * T_SV8 + +size_t T_VAL64 +ssize_t T_VAL64 +off_t T_VAL64 + +aio_rfd T_AIO_RFD +aio_wfd T_AIO_WFD INPUT T_AIO - $var = SvAIO_REQ ($arg, AIO_REQ_KLASS); - if (!$var) - croak (\"busy " AIO_CB_KLASS " object expected\"); + if (!($var = SvAIO_REQ ($arg))) + croak (\"busy IO::AIO::REQ object expected\") T_AIO_ORNOT - $var = SvAIO_REQ ($arg, AIO_REQ_KLASS); - if (!$var) - XSRETURN_EMPTY; - -T_AIO_GROUP - $var = SvAIO_REQ ($arg, AIO_GRP_KLASS); - if (!$var) - croak (AIO_GROUP_KLASS " object expected\"); + if (!($var = SvAIO_REQ ($arg))) + XSRETURN_EMPTY + +T_SV8 + ($var) = $arg; + if (SvPOKp ($var) && !sv_utf8_downgrade ($var, 1)) + croak (\"\\\"%s\\\" argument must be byte/octet-encoded\", \"$var\") + +T_VAL64 + $var = ($type)SvVAL64 ($arg); + +T_AIO_RFD + $var = s_fileno_croak ($arg, 0); + +T_AIO_WFD + $var = s_fileno_croak ($arg, 1); + +OUTPUT +T_VAL64 + $arg = newSVval64 ($var);