####################################################################
## The little hampster grew humps, and wrote this....             ##
## Copyright (c) 2001 Theo Zourzouvillys <theo@crazygreek.co.uk>  ##
## Includes code from netfilter (netfilter.samba.org)             ##
####################################################################
#       .Copyright (C)  2000-2001 Theo Zourzouvillys
#       .Created:       26/09/2001
#       .Contactid:     <theo@crazygreek.co.uk>
#       .Url:           http://www.crazygreek.co.uk/perl/
#       .Authors:       Theo Zourzouvillys
#       .ID:            $Id: typemap,v 1.3 2001/09/28 02:44:29 theo Exp $

TYPEMAP
iptc_handle_t *         T_PTROBJ
ipt_counters            T_PTROBJ

match *					T_PTROBJ

handle *				O_OBJECT
iptxs_entry *			O_OBJECT
iptxs_target *			O_OBJECT

target *				O_OBJECT

iptcxs_handle_t *		O_OBJECT

const char *            T_PV_NULL

INPUT
O_OBJECT
    if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) )
        $var = ($type)SvIV((SV*)SvRV( $arg ));
    else{
        warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
        XSRETURN_UNDEF;
    }


T_PV_NULL
    if ($arg == &PL_sv_undef)
        $var = NULL ;
    else {
            $var = ($type)SvPV($arg,PL_na) ;
        if (PL_na == 0)
        $var = NULL ;
    }



OUTPUT
T_PV_NULL
        sv_setpv((SV*)$arg, $var);

O_OBJECT
    sv_setref_pv( $arg, CLASS, (void*)$var );


