# $Id: typemap 1467 2004-05-25 23:52:26Z whmoseley $

TYPEMAP
SW_HANDLE       O_OBJECT
SW_SEARCH       O_OBJECT
SW_RESULTS      O_OBJECT
SW_RESULT       O_OBJECT
SW_FUZZYWORD    O_OBJECT
META_OBJ *      O_OBJECT
SW_META         O_OBJECT_META
const char *    T_PV

# From: "perlobject.map"  Dean Roehrich, version 19960302
# O_OBJECT      -> link an opaque C or C++ object to a blessed Perl object.

OUTPUT

# The Perl object is blessed into 'CLASS', which should be a
# char* having the name of the package for the blessing.
O_OBJECT
        sv_setref_pv( $arg, CLASS, (void*)$var );

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;
        }


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

