TYPEMAP
rpmdb			O_OBJECT_rpmdb
rpmmi			O_OBJECT_rpmmi
Header			O_OBJECT_header
rpmts	    		O_OBJECT_rpmts
rpmps			O_OBJECT_rpmps
rpmfi			O_OBJECT_rpmfi
rpmds			O_OBJECT_rpmds
Spec			O_OBJECT_rpmspec
rpmprobFilterFlags	T_IV
rpmElementType		T_IV

INPUT
O_OBJECT_rpmdb
    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_rpmmi
    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_header
    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_rpmts
    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_rpmps
    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_rpmfi
    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_rpmds
    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_rpmspec
    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;
    }

OUTPUT
O_OBJECT_rpmdb
        sv_setref_pv( $arg, "RPM::C::DB", (void*)$var );
O_OBJECT_rpmmi
        sv_setref_pv( $arg, "RPM::PackageIterator", (void*)$var );
O_OBJECT_header
        sv_setref_pv( $arg, "RPM::Header", (void*)$var );
O_OBJECT_rpmts
        sv_setref_pv( $arg, "RPM::Transaction", (void*)$var );
O_OBJECT_rpmps
        sv_setref_pv( $arg, "RPM::Problems", (void*)$var );
O_OBJECT_rpmfi
        sv_setref_pv( $arg, "RPM::Files", (void*)$var );
O_OBJECT_rpmds
        sv_setref_pv( $arg, "RPM::Dependencies", (void*)$var );
O_OBJECT_rpmspec
        sv_setref_pv( $arg, "RPM::Spec", (void*)$var );
