# --8<--8<--8<--8<--
#
# Copyright (C) 2006 Smithsonian Astrophysical Observatory
#
# This file is part of CIAO-Lib-Param
#
# CIAO-Lib-Param is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# CIAO-Lib-Param is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the 
#       Free Software Foundation, Inc. 
#       51 Franklin Street, Fifth Floor
#       Boston, MA  02110-1301, USA
#
# -->8-->8-->8-->8--

TYPEMAP

stringArray *		T_ARRAY
CIAO_Lib_ParamPtr	T_PTROBJ_SPECIAL
CIAO_Lib_Param_MatchPtr	T_PTROBJ_SPECIAL

char *			T_STRING	    

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

T_PTROBJ_SPECIAL
	if (sv_derived_from($arg, \"${(my $ntt=$ntype)=~s/_/::/g;\$ntt}\")) {
		IV tmp = SvIV((SV*)SvRV($arg));
		$var = ($type) tmp;
	}
	else
		croak(\"$var is not of type ${(my $ntt=$ntype)=~s/_/::/g;\$ntt}\")


T_STRING
	$var = SvOK($arg) ? ($type)SvPV_nolen($arg) : ($type)NULL;



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

T_PTROBJ_SPECIAL
	sv_setref_pv($arg, \"${(my $ntt=$ntype)=~s/_/::/g;\$ntt}\", (void*)$var);

T_STRING
	if ($var != NULL) sv_setpv((SV *)$arg, $var);
	else              sv_setsv((SV *)$arg, &PL_sv_undef);
