// ---- auto generated by YInG - the YAC interface generator (Sun, 5/Apr/2009 19:56:15)
#ifndef __YAC__test_h__
#define __YAC__test_h__

sUI                                          clid_MyEmptyClass;
YAC_Template <MyEmptyClass>                    *t_MyEmptyClass;
sUI                                          clid_MyVector;
YAC_Template <MyVector>                        *t_MyVector;
sUI                                          clid_MyClass;
YAC_Template <MyClass>                         *t_MyClass;
sUI                                          clid_MyPooledClass;
YAC_Template <MyPooledClass>                   *t_MyPooledClass;

void YAC_CALL YAC_Init_test(YAC_Host *_host) {
	// --------------------------------- classes ---------------------------------
	   t_MyEmptyClass             =new YAC_Template <MyEmptyClass>(_host);
	clid_MyEmptyClass             =                t_MyEmptyClass->ctemplate.class_ID;
	   t_MyVector                 =new YAC_Template <MyVector>(_host);
	clid_MyVector                 =                t_MyVector->ctemplate.class_ID;
	   t_MyClass                  =new YAC_Template <MyClass>(_host);
	clid_MyClass                  =                t_MyClass->ctemplate.class_ID;
	   t_MyPooledClass            =new YAC_Template <MyPooledClass>(_host);
	clid_MyPooledClass            =                t_MyPooledClass->ctemplate.class_ID;
	// -------------------------------- functions --------------------------------
	static const sUI   Say_Hello_arg_types                        []={0,};
	static const sUI   _Say_Hello2_arg_types                      []={0,};
	static const sUI   __APIC__printMyVector_arg_types            []={3,};
	static const sUI   __APIC__Fun_ReturnF_arg_types              []={2, 2,};
	static const sUI   __APIC__Fun_ReturnI_arg_types              []={1, 1,};
	static const sUI   Fun_ReturnI_CPP_arg_types                  []={0,};
	static const sUI   Fun_ReturnF_CPP_arg_types                  []={0,};
	static const sUI   __APIC__Fun_ReturnNewMyClass_arg_types     []={0,};
	static const sUI   __APIC___TestVarRetMangled_arg_types       []={3,};
	static const sUI   RaiseSegV_arg_types                        []={0,};
	static const sUI   Raise_InvalidPointer_arg_types             []={0,};
	static const sUI   __APIC__TestObjRet0_YAC_RARG_arg_types     []={3,};
	static const sUI   __APIC__TestObjRet1_YAC_RARG_arg_types     []={1, 3,};
	static const sUI   __APIC__TestObjRet0_YAC_RVAL_arg_types     []={0,};
	static const sUI   __APIC__TestObjRet1_YAC_RVAL_arg_types     []={1,};
	static const char *Say_Hello_arg_otypes                       []={0,};
	static const char *_Say_Hello2_arg_otypes                     []={0,};
	static const char *__APIC__printMyVector_arg_otypes           []={"MyVector",};
	static const char *__APIC__Fun_ReturnF_arg_otypes             []={"", "",};
	static const char *__APIC__Fun_ReturnI_arg_otypes             []={"", "",};
	static const char *Fun_ReturnI_CPP_arg_otypes                 []={0,};
	static const char *Fun_ReturnF_CPP_arg_otypes                 []={0,};
	static const char *__APIC__Fun_ReturnNewMyClass_arg_otypes    []={0,};
	static const char *__APIC___TestVarRetMangled_arg_otypes      []={"",};
	static const char *RaiseSegV_arg_otypes                       []={0,};
	static const char *Raise_InvalidPointer_arg_otypes            []={0,};
	static const char *__APIC__TestObjRet0_YAC_RARG_arg_otypes    []={"",};
	static const char *__APIC__TestObjRet1_YAC_RARG_arg_otypes    []={"", "",};
	static const char *__APIC__TestObjRet0_YAC_RVAL_arg_otypes    []={0,};
	static const char *__APIC__TestObjRet1_YAC_RVAL_arg_otypes    []={"",};
	_host->yacRegisterFunction((void*)Say_Hello, "Say_Hello", 0, "", 0, Say_Hello_arg_types, Say_Hello_arg_otypes, 8);
	_host->yacRegisterFunction((void*)_Say_Hello2, "Say_Hello2", 0, "", 0, _Say_Hello2_arg_types, _Say_Hello2_arg_otypes, 8);
	_host->yacRegisterFunction((void*)__APIC__printMyVector, "printMyVector", 0, "", 1, __APIC__printMyVector_arg_types, __APIC__printMyVector_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC__Fun_ReturnF, "Fun_ReturnF", 2, "", 2, __APIC__Fun_ReturnF_arg_types, __APIC__Fun_ReturnF_arg_otypes, 2);
	_host->yacRegisterFunction((void*)__APIC__Fun_ReturnI, "Fun_ReturnI", 1, "", 2, __APIC__Fun_ReturnI_arg_types, __APIC__Fun_ReturnI_arg_otypes, 1);
	_host->yacRegisterFunction((void*)Fun_ReturnI_CPP, "Fun_ReturnI_CPP", 1, "", 0, Fun_ReturnI_CPP_arg_types, Fun_ReturnI_CPP_arg_otypes, 9);
	_host->yacRegisterFunction((void*)Fun_ReturnF_CPP, "Fun_ReturnF_CPP", 2, "", 0, Fun_ReturnF_CPP_arg_types, Fun_ReturnF_CPP_arg_otypes, 10);
	_host->yacRegisterFunction((void*)__APIC__Fun_ReturnNewMyClass, "Fun_ReturnNewMyClass", 4, "", 0, __APIC__Fun_ReturnNewMyClass_arg_types, __APIC__Fun_ReturnNewMyClass_arg_otypes, 5);
	_host->yacRegisterFunction((void*)__APIC___TestVarRetMangled, "TestVarRetMangled", 4, "", 1, __APIC___TestVarRetMangled_arg_types, __APIC___TestVarRetMangled_arg_otypes, 4);
	_host->yacRegisterFunction((void*)RaiseSegV, "RaiseSegV", 0, "", 0, RaiseSegV_arg_types, RaiseSegV_arg_otypes, 8);
	_host->yacRegisterFunction((void*)Raise_InvalidPointer, "Raise_InvalidPointer", 0, "", 0, Raise_InvalidPointer_arg_types, Raise_InvalidPointer_arg_otypes, 8);
	_host->yacRegisterFunction((void*)__APIC__TestObjRet0_YAC_RARG, "TestObjRet0_YAC_RARG", 0, "", 1, __APIC__TestObjRet0_YAC_RARG_arg_types, __APIC__TestObjRet0_YAC_RARG_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC__TestObjRet1_YAC_RARG, "TestObjRet1_YAC_RARG", 0, "", 2, __APIC__TestObjRet1_YAC_RARG_arg_types, __APIC__TestObjRet1_YAC_RARG_arg_otypes, 0);
	_host->yacRegisterFunction((void*)__APIC__TestObjRet0_YAC_RVAL, "TestObjRet0_YAC_RVAL", 4, "", 0, __APIC__TestObjRet0_YAC_RVAL_arg_types, __APIC__TestObjRet0_YAC_RVAL_arg_otypes, 5);
	_host->yacRegisterFunction((void*)__APIC__TestObjRet1_YAC_RVAL, "TestObjRet1_YAC_RVAL", 4, "", 1, __APIC__TestObjRet1_YAC_RVAL_arg_types, __APIC__TestObjRet1_YAC_RVAL_arg_otypes, 4);

}
void  YAC_CALL __APIC__printMyVector(yacmemptr _args                         ) {if(YAC_BCHK(_args.mem[0].o, clid_MyVector)){ printMyVector((MyVector*)_args.mem[0].o);}}
sF32  YAC_CALL __APIC__Fun_ReturnF  (yacmemptr _args                         ) {return (sF32)Fun_ReturnF(_args.mem[0].f4, _args.mem[1].f4);}
sSI   YAC_CALL __APIC__Fun_ReturnI  (yacmemptr _args                         ) {return (sSI)Fun_ReturnI(_args.mem[0].si, _args.mem[1].si);}
void  YAC_CALL __APIC__Fun_ReturnNewMyClass(YAC_Value *_r                    ) {Fun_ReturnNewMyClass(_r);}
void  YAC_CALL __APIC___TestVarRetMangled(yacmemptr _args, YAC_Value *_r     ) {_TestVarRetMangled(_args.mem[0].o, _r);}
void  YAC_CALL __APIC__TestObjRet0_YAC_RARG(yacmemptr _args                  ) {TestObjRet0_YAC_RARG(_args.mem[0].o);}
void  YAC_CALL __APIC__TestObjRet1_YAC_RARG(yacmemptr _args                  ) {TestObjRet1_YAC_RARG(_args.mem[0].si, _args.mem[1].o);}
void  YAC_CALL __APIC__TestObjRet0_YAC_RVAL(YAC_Value *_r                    ) {TestObjRet0_YAC_RVAL(_r);}
void  YAC_CALL __APIC__TestObjRet1_YAC_RVAL(yacmemptr _args, YAC_Value *_r   ) {TestObjRet1_YAC_RVAL(_args.mem[0].si, _r);}

void YAC_CALL YAC_Exit_test(YAC_Host *_host) {
	delete t_MyPooledClass;
	delete t_MyClass;
	delete t_MyVector;
	delete t_MyEmptyClass;
}

#endif
