The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
######################################################################
# INPUT/OUTPUT maps
#
# O_*		-> opaque blessed objects
# O_OBJECT	-> link an opaque C or C++ object to a blessed Perl object.
#
######################################################################

TYPEMAP

osp_bridge *		T_PTRREF
os_server *		O_OBJSTORE
os_database *		O_OBJSTORE
os_database_root *	O_OBJSTORE
os_DLL_schema_info *	O_OBJSTORE
os_segment *		O_OBJSTORE
os_notification *	O_OBJSTORE
osp_txn *		O_OBJSTORE
OSSVPV *		O_OSSVPV
OSPV_Container *	O_OSSVPV
OSPV_Generic *		O_OSSVPV
OSPV_Ref2 *		O_OSSVPV
OSPV_Cursor2 *		O_OSSVPV
OSPV_Ref *		O_OSSVPV
OSPV_Cursor *		O_OSSVPV

######################################################################
INPUT

O_OBJSTORE
	$var = ($type) typemap_any::decode($arg);

O_OSSVPV
	ospv_bridge * ${var}_bridge = osp_thr::sv_2bridge($arg, 1);
	$var = ($type) ${var}_bridge->ospv();

######################################################################
OUTPUT

O_OBJSTORE
	$arg = osp_thr::any_2sv($var, CLASS);

O_OSSVPV
	croak("not implemented");