00001 #ifndef __NITRO_TESTING_UTILITIES_H__
00002 #define __NITRO_TESTING_UTILITIES_H__
00003
00004 #include <iostream>
00005 #include <string>
00006 #include <utility>
00007 #include <vector>
00008
00009 #include <managers/object_manager.h>
00010 #include <utilities/cpp_utilities.h>
00011
00012 #if defined( WIN32_PLATFORM )
00013
00014
00015 #pragma warning( disable : 4290 )
00016 #endif
00017
00018 namespace nitro
00019 {
00020
00033 template< class ret_value_type >class FunctionWrapper{
00034 public:
00035
00054 ret_value_type operator()( ret_value_type ( * CallingFunction )( void ) )
00055 {
00056 return( CallingFunction() );
00057 }
00058
00081 template< class type1 >ret_value_type
00082 operator()( ret_value_type ( * CallingFunction )( type1 ) , type1 & Param1 )
00083 {
00084 return( CallingFunction( Param1 ) );
00085 }
00086
00114 template< class type1 , class type2 >ret_value_type
00115 operator()( ret_value_type ( * CallingFunction )( type1 , type2 ) , type1 & Param1 , type2 & Param2 )
00116 {
00117 return( CallingFunction( Param1 , Param2 ) );
00118 }
00119
00150 template< class type1 , class type2 , class type3 >ret_value_type
00151 operator()( ret_value_type ( * CallingFunction )( type1 , type2 , type3 ) , type1 & Param1 , type2 & Param2 , type3 & Param3 )
00152 {
00153 return( CallingFunction( Param1 , Param2 , Param3 ) );
00154 }
00155
00190 template< class type1 , class type2 , class type3 , class type4 >ret_value_type
00191 operator()( ret_value_type ( * CallingFunction )( type1 , type2 , type3 , type4 ) , type1 & Param1 , type2 & Param2 , type3 & Param3 , type4 & Param4 )
00192 {
00193 return( CallingFunction( Param1 , Param2 , Param3 , Param4 ) );
00194 }
00195
00234 template< class type1 , class type2 , class type3 , class type4 , class type5 >ret_value_type
00235 operator()( ret_value_type ( * CallingFunction )( type1 , type2 , type3 , type4 , type5 ) , type1 & Param1 , type2 & Param2 , type3 & Param3 , type4 & Param4 , type5 & Param5 )
00236 {
00237 return( CallingFunction( Param1 , Param2 , Param3 , Param4 , Param5 ) );
00238 }
00239 };
00240
00253 template< >class FunctionWrapper< void >{
00254 public:
00255
00274 int operator()( void ( * CallingFunction )( void ) )
00275 {
00276 CallingFunction();
00277 return( 0 );
00278 }
00279
00302 template< class type1 >int
00303 operator()( void ( * CallingFunction )( type1 ) , type1 & Param1 )
00304 {
00305 CallingFunction( Param1 );
00306 return( 0 );
00307 }
00308
00335 template< class type1 , class type2 >int
00336 operator()( void ( * CallingFunction )( type1 , type2 ) , type1 & Param1 , type2 & Param2 )
00337 {
00338 CallingFunction( Param1 , Param2 );
00339 return( 0 );
00340 }
00341
00372 template< class type1 , class type2 , class type3 >int
00373 operator()( void ( * CallingFunction )( type1 , type2 , type3 ) , type1 & Param1 , type2 & Param2 , type3 & Param3 )
00374 {
00375 CallingFunction( Param1 , Param2 , Param3 );
00376 return( 0 );
00377 }
00378
00413 template< class type1 , class type2 , class type3 , class type4 >int
00414 operator()( void ( * CallingFunction )( type1 , type2 , type3 , type4 ) , type1 & Param1 , type2 & Param2 , type3 & Param3 , type4 & Param4 )
00415 {
00416 CallingFunction( Param1 , Param2 , Param3 , Param4 );
00417 return( 0 );
00418 }
00419
00458 template< class type1 , class type2 , class type3 , class type4 , class type5 >int
00459 operator()( void ( * CallingFunction )( type1 , type2 , type3 , type4 , type5 ) , type1 & Param1 , type2 & Param2 , type3 & Param3 , type4 & Param4 , type5 & Param5 )
00460 {
00461 CallingFunction( Param1 , Param2 , Param3 , Param4 , Param5 );
00462 return( 0 );
00463 }
00464 };
00465
00478 template< class ret_value_type >class MemberFunctionWrapper{
00479 public:
00480
00503 template< class class_type >ret_value_type
00504 operator()( ret_value_type ( class_type::* CallingFunction )( void ) const , class_type & ob )
00505 {
00506 return( ( ( &ob )->*CallingFunction )() );
00507 }
00508
00531 template< class class_type >ret_value_type
00532 operator()( ret_value_type ( class_type::* CallingFunction )( void ) , class_type & ob )
00533 {
00534 return( ( ( &ob )->*CallingFunction )() );
00535 }
00536
00563 template< class class_type , class type1 >ret_value_type
00564 operator()( ret_value_type ( class_type::* CallingFunction )( type1 ) const , class_type & ob , type1 & Param1 )
00565 {
00566 return( ( ( &ob )->*CallingFunction )( Param1 ) );
00567 }
00568
00595 template< class class_type , class type1 >ret_value_type
00596 operator()( ret_value_type ( class_type::* CallingFunction )( type1 ) , class_type & ob , type1 & Param1 )
00597 {
00598 return( ( ( &ob )->*CallingFunction )( Param1 ) );
00599 }
00600
00631 template< class class_type , class type1 , class type2 >ret_value_type
00632 operator()( ret_value_type ( class_type::* CallingFunction )( type1 , type2 ) const , class_type & ob , type1 & Param1 , type2 & Param2 )
00633 {
00634 return( ( ( &ob )->*CallingFunction )( Param1 , Param2 ) );
00635 }
00636
00667 template< class class_type , class type1 , class type2 >ret_value_type
00668 operator()( ret_value_type ( class_type::* CallingFunction )( type1 , type2 ) , class_type & ob , type1 & Param1 , type2 & Param2 )
00669 {
00670 return( ( ( &ob )->*CallingFunction )( Param1 , Param2 ) );
00671 }
00672
00707 template< class class_type , class type1 , class type2 , class type3 >ret_value_type
00708 operator()( ret_value_type ( class_type::* CallingFunction )( type1 , type2 , type3 ) const , class_type & ob , type1 & Param1 , type2 & Param2 , type3 & Param3 )
00709 {
00710 return( ( ( &ob )->*CallingFunction )( Param1 , Param2 , Param3 ) );
00711 }
00712
00747 template< class class_type , class type1 , class type2 , class type3 >ret_value_type
00748 operator()( ret_value_type ( class_type::* CallingFunction )( type1 , type2 , type3 ) , class_type & ob , type1 & Param1 , type2 & Param2 , type3 & Param3 )
00749 {
00750 return( ( ( &ob )->*CallingFunction )( Param1 , Param2 , Param3 ) );
00751 }
00752
00791 template< class class_type , class type1 , class type2 , class type3 , class type4 >ret_value_type
00792 operator()( ret_value_type ( class_type::* CallingFunction )( type1 , type2 , type3 , type4 ) const , class_type & ob , type1 & Param1 , type2 & Param2 , type3 & Param3 , type4 & Param4 )
00793 {
00794 return( ( ( &ob )->*CallingFunction )( Param1 , Param2 , Param3 , Param4 ) );
00795 }
00796
00835 template< class class_type , class type1 , class type2 , class type3 , class type4 >ret_value_type
00836 operator()( ret_value_type ( class_type::* CallingFunction )( type1 , type2 , type3 , type4 ) , class_type & ob , type1 & Param1 , type2 & Param2 , type3 & Param3 , type4 & Param4 )
00837 {
00838 return( ( ( &ob )->*CallingFunction )( Param1 , Param2 , Param3 , Param4 ) );
00839 }
00840
00883 template< class class_type , class type1 , class type2 , class type3 , class type4 , class type5 >ret_value_type
00884 operator()( ret_value_type ( class_type::* CallingFunction )( type1 , type2 , type3 , type4 , type5 ) const , class_type & ob , type1 & Param1 , type2 & Param2 , type3 & Param3 , type4 & Param4 , type5 & Param5 )
00885 {
00886 return( ( ( &ob )->*CallingFunction )( Param1 , Param2 , Param3 , Param4 , Param5 ) );
00887 }
00888
00931 template< class class_type , class type1 , class type2 , class type3 , class type4 , class type5 >ret_value_type
00932 operator()( ret_value_type ( class_type::* CallingFunction )( type1 , type2 , type3 , type4 , type5 ) , class_type & ob , type1 & Param1 , type2 & Param2 , type3 & Param3 , type4 & Param4 , type5 & Param5 )
00933 {
00934 return( ( ( &ob )->*CallingFunction )( Param1 , Param2 , Param3 , Param4 , Param5 ) );
00935 }
00936 };
00937
00950 template< >class MemberFunctionWrapper< void >{
00951 public:
00952
00975 template< class class_type >int
00976 operator()( void ( class_type::* CallingFunction )( void ) const , class_type & ob )
00977 {
00978 ( ( &ob )->*CallingFunction )();
00979 return( 0 );
00980 }
00981
01004 template< class class_type >int
01005 operator()( void ( class_type::* CallingFunction )( void ) , class_type & ob )
01006 {
01007 ( ( &ob )->*CallingFunction )();
01008 return( 0 );
01009 }
01010
01037 template< class class_type , class type1 >int
01038 operator()( void ( class_type::* CallingFunction )( type1 ) const , class_type & ob , type1 & Param1 )
01039 {
01040 ( ( &ob )->*CallingFunction )( Param1 );
01041 return( 0 );
01042 }
01043
01070 template< class class_type , class type1 >int
01071 operator()( void ( class_type::* CallingFunction )( type1 ) , class_type & ob , type1 & Param1 )
01072 {
01073 ( ( &ob )->*CallingFunction )( Param1 );
01074 return( 0 );
01075 }
01076
01107 template< class class_type , class type1 , class type2 >int
01108 operator()( void ( class_type::* CallingFunction )( type1 , type2 ) const , class_type & ob , type1 & Param1 , type2 & Param2 )
01109 {
01110 ( ( &ob )->*CallingFunction )( Param1 , Param2 );
01111 return( 0 );
01112 }
01113
01144 template< class class_type , class type1 , class type2 >int
01145 operator()( void ( class_type::* CallingFunction )( type1 , type2 ) , class_type & ob , type1 & Param1 , type2 & Param2 )
01146 {
01147 ( ( &ob )->*CallingFunction )( Param1 , Param2 );
01148 return( 0 );
01149 }
01150
01185 template< class class_type , class type1 , class type2 , class type3 >int
01186 operator()( void ( class_type::* CallingFunction )( type1 , type2 , type3 ) const , class_type & ob , type1 & Param1 , type2 & Param2 , type3 & Param3 )
01187 {
01188 ( ( &ob )->*CallingFunction )( Param1 , Param2 , Param3 );
01189 return( 0 );
01190 }
01191
01226 template< class class_type , class type1 , class type2 , class type3 >int
01227 operator()( void ( class_type::* CallingFunction )( type1 , type2 , type3 ) , class_type & ob , type1 & Param1 , type2 & Param2 , type3 & Param3 )
01228 {
01229 ( ( &ob )->*CallingFunction )( Param1 , Param2 , Param3 );
01230 return( 0 );
01231 }
01232
01271 template< class class_type , class type1 , class type2 , class type3 , class type4 >int
01272 operator()( void ( class_type::* CallingFunction )( type1 , type2 , type3 , type4 ) const , class_type & ob , type1 & Param1 , type2 & Param2 , type3 & Param3 , type4 & Param4 )
01273 {
01274 ( ( &ob )->*CallingFunction )( Param1 , Param2 , Param3 , Param4 );
01275 return( 0 );
01276 }
01277
01316 template< class class_type , class type1 , class type2 , class type3 , class type4 >int
01317 operator()( void ( class_type::* CallingFunction )( type1 , type2 , type3 , type4 ) , class_type & ob , type1 & Param1 , type2 & Param2 , type3 & Param3 , type4 & Param4 )
01318 {
01319 ( ( &ob )->*CallingFunction )( Param1 , Param2 , Param3 , Param4 );
01320 return( 0 );
01321 }
01322
01365 template< class class_type , class type1 , class type2 , class type3 , class type4 , class type5 >int
01366 operator()( void ( class_type::* CallingFunction )( type1 , type2 , type3 , type4 , type5 ) const , class_type & ob , type1 & Param1 , type2 & Param2 , type3 & Param3 , type4 & Param4 , type5 & Param5 )
01367 {
01368 ( ( &ob )->*CallingFunction )( Param1 , Param2 , Param3 , Param4 , Param5 );
01369 return( 0 );
01370 }
01371
01414 template< class class_type , class type1 , class type2 , class type3 , class type4 , class type5 >int
01415 operator()( void ( class_type::* CallingFunction )( type1 , type2 , type3 , type4 , type5 ) , class_type & ob , type1 & Param1 , type2 & Param2 , type3 & Param3 , type4 & Param4 , type5 & Param5 )
01416 {
01417 ( ( &ob )->*CallingFunction )( Param1 , Param2 , Param3 , Param4 , Param5 );
01418 return( 0 );
01419 }
01420 };
01421
01434 template< class from_type , class to_type >class TypeConverter{
01435
01454 to_type operator()( from_type & Param )
01455 {
01456 return( ( to_type )Param );
01457 }
01458 };
01459
01463 #define BEGIN_TESTING_SECTION()\
01464 extern "C"\
01465 {\
01466
01467 #ifdef ENABLE_AUTOTESTING
01468
01472 #define GET_OBJECT_PTR( CLASS_NAME , OBJECT_NAME )\
01473 CLASS_NAME##ObjectManager[ OBJECT_NAME ]
01474
01478 #define GET_OBJECT( CLASS_NAME , OBJECT_NAME ) ( * ( GET_OBJECT_PTR( CLASS_NAME , OBJECT_NAME ) ) )
01479
01483 #define ENABLE_EXTERN_CLASS( CLASS_NAME )\
01484 __declspec( dllimport )CLASS_NAME & CLASS_NAME##Getter( const char * ObjectName )
01485
01489 #define ENABLE_CLASS_TESTING( CLASS_NAME )\
01490 nitro::ObjectManager< CLASS_NAME > CLASS_NAME##ObjectManager;\
01491 NITRO_EXPORTING CLASS_NAME & CLASS_NAME##Getter( const char * ObjectName )\
01492 {\
01493 return( GET_OBJECT( CLASS_NAME , ObjectName ) );\
01494 }\
01495 NITRO_EXPORTING void CLASS_NAME##_CreateObject( const char * ObjectName ) throw( nitro::exception )\
01496 {\
01497 try\
01498 {\
01499 CLASS_NAME##ObjectManager.AddObject( ObjectName , new CLASS_NAME() );\
01500 }\
01501 catch( nitro::exception e )\
01502 {\
01503 std::cout<<"CreateObject( const char * ObjectName )::"<<e.what()<<std::endl;\
01504 throw;\
01505 }\
01506 catch( ... )\
01507 {\
01508 std::cout<<"CreateObject( const char * ObjectName )::An error occured"<<std::endl;\
01509 throw;\
01510 }\
01511 }
01512
01518 #define BEGIN_CUSTOM_DECLARATION_0( FUNC_NAME , ALIAS_RET_TYPE )\
01519 NITRO_EXPORTING ALIAS_RET_TYPE FUNC_NAME( void )\
01520 {\
01521 try\
01522 {
01523
01529 #define BEGIN_CUSTOM_DECLARATION_1( FUNC_NAME , PARAM_1_TYPE , ALIAS_RET_TYPE )\
01530 NITRO_EXPORTING ALIAS_RET_TYPE FUNC_NAME( PARAM_1_TYPE & Param1 )\
01531 {\
01532 try\
01533 {
01534
01540 #define BEGIN_CUSTOM_DECLARATION_2( FUNC_NAME , PARAM_1_TYPE , PARAM_2_TYPE , ALIAS_RET_TYPE )\
01541 NITRO_EXPORTING ALIAS_RET_TYPE FUNC_NAME( PARAM_1_TYPE & Param1 , PARAM_2_TYPE & Param2 )\
01542 {\
01543 try\
01544 {
01545
01551 #define BEGIN_CUSTOM_DECLARATION_3( FUNC_NAME , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , ALIAS_RET_TYPE )\
01552 NITRO_EXPORTING ALIAS_RET_TYPE FUNC_NAME( PARAM_1_TYPE & Param1 , PARAM_2_TYPE & Param2 , PARAM_3_TYPE & Param3 )\
01553 {\
01554 try\
01555 {
01556
01562 #define BEGIN_CUSTOM_DECLARATION_4( FUNC_NAME , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , ALIAS_RET_TYPE )\
01563 NITRO_EXPORTING ALIAS_RET_TYPE FUNC_NAME( PARAM_1_TYPE & Param1 , PARAM_2_TYPE & Param2 , PARAM_3_TYPE & Param3 , PARAM_4_TYPE & Param4 )\
01564 {\
01565 try\
01566 {
01567
01573 #define BEGIN_CUSTOM_DECLARATION_5( FUNC_NAME , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , PARAM_5_TYPE , ALIAS_RET_TYPE )\
01574 NITRO_EXPORTING ALIAS_RET_TYPE FUNC_NAME( PARAM_1_TYPE & Param1 , PARAM_2_TYPE & Param2 , PARAM_3_TYPE & Param3 , PARAM_4_TYPE & Param4 , PARAM_5_TYPE & Param5 )\
01575 {\
01576 try\
01577 {
01578
01584 #define END_CUSTOM_DECLARATION()\
01585 }\
01586 catch( nitro::exception e )\
01587 {\
01588 std::cout<<"EXPORT_FUNCTION_ALIAS( ... )::"<<e.what()<<std::endl;\
01589 }\
01590 catch( ... )\
01591 {\
01592 std::cout<<"EXPORT_FUNCTION_ALIAS( ... )::An error occured"<<std::endl;\
01593 }
01594
01595 #define PARAM1 Param1
01596
01602 #define NO_CONVERT_INPUT( PARAM_NAME , TYPE )\
01603 TYPE & PARAM_NAME##Converted( PARAM_NAME );
01604
01610 #define NO_CONVERT_OUTPUT( PARAM_NAME , TYPE )\
01611 PARAM_NAME = PARAM_NAME##Converted;
01612
01618 #define CONVERT_INPUT( PARAM_NAME , FROM_TYPE , TO_TYPE )\
01619 TO_TYPE PARAM_NAME##Converted( TypeConverter< FROM_TYPE , TO_TYPE >( PARAM_NAME ) );
01620
01626 #define CONVERT_OUTPUT( PARAM_NAME , FROM_TYPE , TO_TYPE )\
01627 PARAM_NAME = TypeConverter< FROM_TYPE , TO_TYPE >( PARAM_NAME##Converted );
01628
01634 #define CALL_FUNCTION_0( FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01635 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
01636 ALIAS_RET_TYPE ReturnValue( ob( FUNCTION_NAME ) );
01637
01643 #define CALL_FUNCTION_1( FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01644 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
01645 ALIAS_RET_TYPE ReturnValue( ob( FUNCTION_NAME , Param1Converted ) );
01646
01652 #define CALL_FUNCTION_2( FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01653 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
01654 ALIAS_RET_TYPE ReturnValue( ob( FUNCTION_NAME , Param1Converted , Param2Converted ) );
01655
01661 #define CALL_FUNCTION_3( FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01662 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
01663 ALIAS_RET_TYPE ReturnValue( ob( FUNCTION_NAME , Param1Converted , Param2Converted , Param3Converted ) );
01664
01670 #define CALL_FUNCTION_4( FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01671 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
01672 ALIAS_RET_TYPE ReturnValue( ob( FUNCTION_NAME , Param1Converted , Param2Converted , Param3Converted , Param4Converted ) );
01673
01679 #define CALL_FUNCTION_5( FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01680 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
01681 ALIAS_RET_TYPE ReturnValue( ob( FUNCTION_NAME , Param1Converted , Param2Converted , Param3Converted , Param4Converted , Param5Converted ) );
01682
01688 #define CALL_MEMBER_FUNCTION_0( CLASS_NAME , MEMBER_FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01689 if( ObjectName == NULL || strlen( ObjectName ) == 0 )throw( nitro::exception( "Object name is not defined" , 0 ) );\
01690 MemberFunctionWrapper< MEMBER_RET_RYPE > ob;\
01691 ALIAS_RET_TYPE ReturnValue( ob( &CLASS_NAME::MEMBER_FUNCTION_NAME , * ( CLASS_NAME##ObjectManager[ ObjectName ] ) ) );
01692
01698 #define CALL_MEMBER_FUNCTION_1( CLASS_NAME , MEMBER_FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01699 if( ObjectName == NULL || strlen( ObjectName ) == 0 )throw( nitro::exception( "Object name is not defined" , 0 ) );\
01700 MemberFunctionWrapper< MEMBER_RET_RYPE > ob;\
01701 ALIAS_RET_TYPE ReturnValue( ob( &CLASS_NAME::MEMBER_FUNCTION_NAME , * ( CLASS_NAME##ObjectManager[ ObjectName ] ) , Param1Converted ) );
01702
01708 #define CALL_MEMBER_FUNCTION_2( CLASS_NAME , MEMBER_FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01709 if( ObjectName == NULL || strlen( ObjectName ) == 0 )throw( nitro::exception( "Object name is not defined" , 0 ) );\
01710 MemberFunctionWrapper< MEMBER_RET_RYPE > ob;\
01711 ALIAS_RET_TYPE ReturnValue( ob( &CLASS_NAME::MEMBER_FUNCTION_NAME , * ( CLASS_NAME##ObjectManager[ ObjectName ] ) , Param1Converted , Param2Converted ) );
01712
01718 #define CALL_MEMBER_FUNCTION_3( CLASS_NAME , MEMBER_FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01719 if( ObjectName == NULL || strlen( ObjectName ) == 0 )throw( nitro::exception( "Object name is not defined" , 0 ) );\
01720 MemberFunctionWrapper< MEMBER_RET_RYPE > ob;\
01721 ALIAS_RET_TYPE ReturnValue( ob( &CLASS_NAME::MEMBER_FUNCTION_NAME , * ( CLASS_NAME##ObjectManager[ ObjectName ] ) , Param1Converted , Param2Converted , Param3Converted ) );
01722
01728 #define CALL_MEMBER_FUNCTION_4( CLASS_NAME , MEMBER_FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01729 if( ObjectName == NULL || strlen( ObjectName ) == 0 )throw( nitro::exception( "Object name is not defined" , 0 ) );\
01730 MemberFunctionWrapper< MEMBER_RET_RYPE > ob;\
01731 ALIAS_RET_TYPE ReturnValue( ob( &CLASS_NAME::MEMBER_FUNCTION_NAME , * ( CLASS_NAME##ObjectManager[ ObjectName ] ) , Param1Converted , Param2Converted , Param3Converted , Param4Converted ) );
01732
01738 #define CALL_MEMBER_FUNCTION_5( CLASS_NAME , MEMBER_FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01739 if( ObjectName == NULL || strlen( ObjectName ) == 0 )throw( nitro::exception( "Object name is not defined" , 0 ) );\
01740 MemberFunctionWrapper< MEMBER_RET_RYPE > ob;\
01741 ALIAS_RET_TYPE ReturnValue( ob( &CLASS_NAME::MEMBER_FUNCTION_NAME , * ( CLASS_NAME##ObjectManager[ ObjectName ] ) , Param1Converted , Param2Converted , Param3Converted , Param4Converted , Param5Converted ) );
01742
01748 #define RETURN_RESULT()\
01749 return( ReturnValue );
01750
01756 #define BEGIN_SIMPLE_SECTION()\
01757 int TestCount( 0 );\
01758 NITRO_EXPORTING int GetTestCount( void ){return( TestCount );}\
01759 void ( * TestFunctions[ 2048 ] )( void );\
01760 int RegSimpleTest( FuncPtr ){TestFunctions[ TestCount++ ] = FuncPtr; return( 0 );}\
01761 void RunSimpleTest( int i ){TestFunctions[ i ]();}
01762
01768 #define REGISTER_SIMPLE_TEST( FUNC_NAME )\
01769 void FUNC_NAME( void );\
01770 int _i_##FUNC_NAME( RegSimpleTest( FUNC_NAME ) );
01771
01777 #define SET_FRIENDSHIP_0R( FRIEND_FUNCTION_NAME , RET_VALUE_TYPE )\
01778 friend REV_VALUE_TYPE FRIEND_FUNCTION_NAME( void );
01779
01785 #define SET_FRIENDSHIP_1R( FRIEND_FUNCTION_NAME , PARAM_1_TYPE , RET_VALUE_TYPE )\
01786 friend REV_VALUE_TYPE FRIEND_FUNCTION_NAME( PARAM_1_TYPE );
01787
01793 #define SET_FRIENDSHIP_2R( FRIEND_FUNCTION_NAME , PARAM_1_TYPE , PARAM_2_TYPE , RET_VALUE_TYPE )\
01794 friend REV_VALUE_TYPE FRIEND_FUNCTION_NAME( PARAM_1_TYPE , PARAM_2_TYPE );
01795
01801 #define SET_FRIENDSHIP_3R( FRIEND_FUNCTION_NAME , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , RET_VALUE_TYPE )\
01802 friend REV_VALUE_TYPE FRIEND_FUNCTION_NAME( PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE );
01803
01809 #define NO_RET int
01810
01816 #define CLASS_MEMBER_FUNCTION_TESTING_0( CLASS_NAME , MEMBER_FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MEMBER_RET_RYPE , ALIAS_RET_TYPE )\
01817 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( const char * ObjectName ) throw( nitro::exception )\
01818 {\
01819 try\
01820 {\
01821 if( ObjectName == NULL || strlen( ObjectName ) == 0 )throw( nitro::exception( "Object name is not defined" , 0 ) );\
01822 MemberFunctionWrapper< MEMBER_RET_RYPE > ob;\
01823 return( ob( &CLASS_NAME::MEMBER_FUNCTION_NAME , * ( CLASS_NAME##ObjectManager[ ObjectName ] ) ) );\
01824 }\
01825 catch( nitro::exception e )\
01826 {\
01827 std::cout<<"EXPORT_FUNCTION_ALIAS( const char * ObjectName )::"<<e.what()<<std::endl;\
01828 throw;\
01829 }\
01830 catch( ... )\
01831 {\
01832 std::cout<<"EXPORT_FUNCTION_ALIAS( const char * ObjectName )::An error occured"<<std::endl;\
01833 throw;\
01834 }\
01835 }
01836
01842 #define CLASS_MEMBER_FUNCTION_TESTING_1( CLASS_NAME , MEMBER_FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , MEMBER_RET_RYPE , ALIAS_RET_TYPE )\
01843 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( const char * ObjectName , PARAM_1_TYPE Param1 ) throw( nitro::exception )\
01844 {\
01845 try\
01846 {\
01847 if( ObjectName == NULL || strlen( ObjectName ) == 0 )throw( nitro::exception( "Object name is not defined" , 0 ) );\
01848 MemberFunctionWrapper< MEMBER_RET_RYPE > ob;\
01849 return( ob( &CLASS_NAME::MEMBER_FUNCTION_NAME , * ( CLASS_NAME##ObjectManager[ ObjectName ] ) , Param1 ) );\
01850 }\
01851 catch( nitro::exception e )\
01852 {\
01853 std::cout<<"EXPORT_FUNCTION_ALIAS( const char * ObjectName , PARAM_1_TYPE PARAM_1_NAME )::"<<e.what()<<std::endl;\
01854 throw;\
01855 }\
01856 catch( ... )\
01857 {\
01858 std::cout<<"EXPORT_FUNCTION_ALIAS( const char * ObjectName , PARAM_1_TYPE PARAM_1_NAME )::An error occured"<<std::endl;\
01859 throw;\
01860 }\
01861 }
01862
01868 #define CLASS_MEMBER_FUNCTION_TESTING_2( CLASS_NAME , MEMBER_FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , PARAM_2_TYPE , MEMBER_RET_RYPE , ALIAS_RET_TYPE )\
01869 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( const char * ObjectName , PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 ) throw( nitro::exception )\
01870 {\
01871 try\
01872 {\
01873 if( ObjectName == NULL || strlen( ObjectName ) == 0 )throw( nitro::exception( "Object name is not defined" , 0 ) );\
01874 MemberFunctionWrapper< MEMBER_RET_RYPE > ob;\
01875 return( ob( &CLASS_NAME::MEMBER_FUNCTION_NAME , * ( CLASS_NAME##ObjectManager[ ObjectName ] ) , Param1 , Param2 ) );\
01876 }\
01877 catch( nitro::exception e )\
01878 {\
01879 std::cout<<"EXPORT_FUNCTION_ALIAS( const char * ObjectName , PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME )::"<<e.what()<<std::endl;\
01880 throw;\
01881 }\
01882 catch( ... )\
01883 {\
01884 std::cout<<"EXPORT_FUNCTION_ALIAS( const char * ObjectName , PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME )::An error occured"<<std::endl;\
01885 throw;\
01886 }\
01887 }
01888
01894 #define CLASS_MEMBER_FUNCTION_TESTING_3( CLASS_NAME , MEMBER_FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , MEMBER_RET_RYPE , ALIAS_RET_TYPE )\
01895 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( const char * ObjectName , PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 ) throw( nitro::exception )\
01896 {\
01897 try\
01898 {\
01899 if( ObjectName == NULL || strlen( ObjectName ) == 0 )throw( nitro::exception( "Object name is not defined" , 0 ) );\
01900 MemberFunctionWrapper< MEMBER_RET_RYPE > ob;\
01901 return( ob( &CLASS_NAME::MEMBER_FUNCTION_NAME , * ( CLASS_NAME##ObjectManager[ ObjectName ] ) , Param1 , Param2 , Param3 ) );\
01902 }\
01903 catch( nitro::exception e )\
01904 {\
01905 std::cout<<"EXPORT_FUNCTION_ALIAS( const char * ObjectName , PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME )::"<<e.what()<<std::endl;\
01906 throw;\
01907 }\
01908 catch( ... )\
01909 {\
01910 std::cout<<"EXPORT_FUNCTION_ALIAS( const char * ObjectName , PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME )::An error occured"<<std::endl;\
01911 throw;\
01912 }\
01913 }
01914
01920 #define CLASS_MEMBER_FUNCTION_TESTING_4( CLASS_NAME , MEMBER_FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , MEMBER_RET_RYPE , ALIAS_RET_TYPE )\
01921 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( const char * ObjectName , PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 , PARAM_4_TYPE Param4 ) throw( nitro::exception )\
01922 {\
01923 try\
01924 {\
01925 if( ObjectName == NULL || strlen( ObjectName ) == 0 )throw( nitro::exception( "Object name is not defined" , 0 ) );\
01926 MemberFunctionWrapper< MEMBER_RET_RYPE > ob;\
01927 return( ob( &CLASS_NAME::MEMBER_FUNCTION_NAME , * ( CLASS_NAME##ObjectManager[ ObjectName ] ) , Param1 , Param2 , Param3 , Param4 ) );\
01928 }\
01929 catch( nitro::exception e )\
01930 {\
01931 std::cout<<"EXPORT_FUNCTION_ALIAS( const char * ObjectName , PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::"<<e.what()<<std::endl;\
01932 throw;\
01933 }\
01934 catch( ... )\
01935 {\
01936 std::cout<<"EXPORT_FUNCTION_ALIAS( const char * ObjectName , PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::An error occured"<<std::endl;\
01937 throw;\
01938 }\
01939 }
01940
01946 #define FUNCTION_RESULT_MAP_0( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01947 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( void ) throw( nitro::exception )\
01948 {\
01949 try\
01950 {\
01951 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
01952 return( MAP_FUNCTION( ob( FUNCTION_NAME ) ) );\
01953 }\
01954 catch( nitro::exception e )\
01955 {\
01956 std::cout<<"EXPORT_FUNCTION_ALIAS( void )::"<<e.what()<<std::endl;\
01957 throw;\
01958 }\
01959 catch( ... )\
01960 {\
01961 std::cout<<"EXPORT_FUNCTION_ALIAS( void )::An error occured"<<std::endl;\
01962 throw;\
01963 }\
01964 }
01965
01971 #define FUNCTION_RESULT_MAP_1( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01972 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 ) throw( nitro::exception )\
01973 {\
01974 try\
01975 {\
01976 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
01977 return( MAP_FUNCTION( ob( FUNCTION_NAME , Param1 ) ) );\
01978 }\
01979 catch( nitro::exception e )\
01980 {\
01981 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME )::"<<e.what()<<std::endl;\
01982 throw;\
01983 }\
01984 catch( ... )\
01985 {\
01986 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME )::An error occured"<<std::endl;\
01987 throw;\
01988 }\
01989 }
01990
01996 #define FUNCTION_RESULT_MAP_2( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
01997 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 ) throw( nitro::exception )\
01998 {\
01999 try\
02000 {\
02001 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02002 return( MAP_FUNCTION( ob( FUNCTION_NAME , Param1 , Param2 ) ) );\
02003 }\
02004 catch( nitro::exception e )\
02005 {\
02006 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME )::"<<e.what()<<std::endl;\
02007 throw;\
02008 }\
02009 catch( ... )\
02010 {\
02011 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME )::An error occured"<<std::endl;\
02012 throw;\
02013 }\
02014 }
02015
02021 #define FUNCTION_RESULT_MAP_3( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02022 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 ) throw( nitro::exception )\
02023 {\
02024 try\
02025 {\
02026 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02027 return( MAP_FUNCTION( ob( FUNCTION_NAME , Param1 , Param2 , Param3 ) ) );\
02028 }\
02029 catch( nitro::exception e )\
02030 {\
02031 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME )::"<<e.what()<<std::endl;\
02032 throw;\
02033 }\
02034 catch( ... )\
02035 {\
02036 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME )::An error occured"<<std::endl;\
02037 throw;\
02038 }\
02039 }
02040
02046 #define FUNCTION_RESULT_MAP_4( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02047 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 , PARAM_4_TYPE Param4 ) throw( nitro::exception )\
02048 {\
02049 try\
02050 {\
02051 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02052 return( MAP_FUNCTION( ob( FUNCTION_NAME , Param1 , Param2 , Param3 , Param4 ) ) );\
02053 }\
02054 catch( nitro::exception e )\
02055 {\
02056 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::"<<e.what()<<std::endl;\
02057 throw;\
02058 }\
02059 catch( ... )\
02060 {\
02061 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::An error occured"<<std::endl;\
02062 throw;\
02063 }\
02064 }
02065
02071 #define FUNCTION_PARAM_MAP_11( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02072 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 ) throw( nitro::exception )\
02073 {\
02074 try\
02075 {\
02076 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02077 return( ob( FUNCTION_NAME , MAP_FUNCTION( Param1 ) ) );\
02078 }\
02079 catch( nitro::exception e )\
02080 {\
02081 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME )::"<<e.what()<<std::endl;\
02082 throw;\
02083 }\
02084 catch( ... )\
02085 {\
02086 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME )::An error occured"<<std::endl;\
02087 throw;\
02088 }\
02089 }
02090
02096 #define FUNCTION_PARAM_MAP_12( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02097 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 ) throw( nitro::exception )\
02098 {\
02099 try\
02100 {\
02101 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02102 return( ob( FUNCTION_NAME , MAP_FUNCTION( Param1 ) , Param2 ) );\
02103 }\
02104 catch( nitro::exception e )\
02105 {\
02106 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME )::"<<e.what()<<std::endl;\
02107 throw;\
02108 }\
02109 catch( ... )\
02110 {\
02111 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME )::An error occured"<<std::endl;\
02112 throw;\
02113 }\
02114 }
02115
02121 #define FUNCTION_PARAM_MAP_22( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02122 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 ) throw( nitro::exception )\
02123 {\
02124 try\
02125 {\
02126 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02127 return( ob( FUNCTION_NAME , Param1 , MAP_FUNCTION( Param2 ) ) );\
02128 }\
02129 catch( nitro::exception e )\
02130 {\
02131 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME )::"<<e.what()<<std::endl;\
02132 throw;\
02133 }\
02134 catch( ... )\
02135 {\
02136 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME )::An error occured"<<std::endl;\
02137 throw;\
02138 }\
02139 }
02140
02146 #define FUNCTION_PARAM_MAP_13( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02147 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 ) throw( nitro::exception )\
02148 {\
02149 try\
02150 {\
02151 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02152 return( ob( FUNCTION_NAME , MAP_FUNCTION( Param1 ) , Param2 , Param3 ) );\
02153 }\
02154 catch( nitro::exception e )\
02155 {\
02156 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME )::"<<e.what()<<std::endl;\
02157 throw;\
02158 }\
02159 catch( ... )\
02160 {\
02161 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME )::An error occured"<<std::endl;\
02162 throw;\
02163 }\
02164 }
02165
02171 #define FUNCTION_PARAM_MAP_23( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02172 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 ) throw( nitro::exception )\
02173 {\
02174 try\
02175 {\
02176 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02177 return( ob( FUNCTION_NAME , Param1 , MAP_FUNCTION( Param2 ) , Param3 ) );\
02178 }\
02179 catch( nitro::exception e )\
02180 {\
02181 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME )::"<<e.what()<<std::endl;\
02182 throw;\
02183 }\
02184 catch( ... )\
02185 {\
02186 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME )::An error occured"<<std::endl;\
02187 throw;\
02188 }\
02189 }
02190
02196 #define FUNCTION_PARAM_MAP_33( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02197 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 ) throw( nitro::exception )\
02198 {\
02199 try\
02200 {\
02201 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02202 return( ob( FUNCTION_NAME , Param1 , Param2 , MAP_FUNCTION( Param3 ) ) );\
02203 }\
02204 catch( nitro::exception e )\
02205 {\
02206 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME )::"<<e.what()<<std::endl;\
02207 throw;\
02208 }\
02209 catch( ... )\
02210 {\
02211 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME )::An error occured"<<std::endl;\
02212 throw;\
02213 }\
02214 }
02215
02221 #define FUNCTION_PARAM_MAP_14( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02222 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 , PARAM_4_TYPE Param4 ) throw( nitro::exception )\
02223 {\
02224 try\
02225 {\
02226 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02227 return( ob( FUNCTION_NAME , MAP_FUNCTION( Param1 ) , Param2 , Param3 , Param4 ) );\
02228 }\
02229 catch( nitro::exception e )\
02230 {\
02231 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::"<<e.what()<<std::endl;\
02232 throw;\
02233 }\
02234 catch( ... )\
02235 {\
02236 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::An error occured"<<std::endl;\
02237 throw;\
02238 }\
02239 }
02240
02246 #define FUNCTION_PARAM_MAP_24( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02247 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 , PARAM_4_TYPE Param4 ) throw( nitro::exception )\
02248 {\
02249 try\
02250 {\
02251 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02252 return( ob( FUNCTION_NAME , Param1 , MAP_FUNCTION( Param2 ) , Param3 , Param4 ) );\
02253 }\
02254 catch( nitro::exception e )\
02255 {\
02256 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::"<<e.what()<<std::endl;\
02257 throw;\
02258 }\
02259 catch( ... )\
02260 {\
02261 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::An error occured"<<std::endl;\
02262 throw;\
02263 }\
02264 }
02265
02271 #define FUNCTION_PARAM_MAP_34( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02272 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 , PARAM_4_TYPE Param4 ) throw( nitro::exception )\
02273 {\
02274 try\
02275 {\
02276 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02277 return( ob( FUNCTION_NAME , Param1 , Param2 , MAP_FUNCTION( Param3 ) , Param4 ) );\
02278 }\
02279 catch( nitro::exception e )\
02280 {\
02281 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::"<<e.what()<<std::endl;\
02282 throw;\
02283 }\
02284 catch( ... )\
02285 {\
02286 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::An error occured"<<std::endl;\
02287 throw;\
02288 }\
02289 }
02290
02296 #define FUNCTION_PARAM_MAP_44( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02297 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 , PARAM_4_TYPE Param4 ) throw( nitro::exception )\
02298 {\
02299 try\
02300 {\
02301 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02302 return( ob( FUNCTION_NAME , Param1 , Param2 , Param3 , MAP_FUNCTION( Param4 ) ) );\
02303 }\
02304 catch( nitro::exception e )\
02305 {\
02306 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::"<<e.what()<<std::endl;\
02307 throw;\
02308 }\
02309 catch( ... )\
02310 {\
02311 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::An error occured"<<std::endl;\
02312 throw;\
02313 }\
02314 }
02315
02321 #define FUNCTION_TESTING_0( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02322 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS() throw( nitro::exception )\
02323 {\
02324 try\
02325 {\
02326 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02327 return( ob( FUNCTION_NAME ) );\
02328 }\
02329 catch( nitro::exception )\
02330 {\
02331 std::cout<<"FUNCTION_TESTING_0( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS )::"<<e.what()<<std::endl;\
02332 throw;\
02333 }\
02334 catch( ... )\
02335 {\
02336 std::cout<<"FUNCTION_TESTING_0( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS )::An error occured"<<std::endl;\
02337 throw;\
02338 }\
02339 }
02340
02346 #define FUNCTION_TESTING_1( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02347 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 ) throw( nitro::exception )\
02348 {\
02349 try\
02350 {\
02351 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02352 return( ob( FUNCTION_NAME , Param1 ) );\
02353 }\
02354 catch( nitro::exception e )\
02355 {\
02356 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME )::"<<e.what()<<std::endl;\
02357 throw;\
02358 }\
02359 catch( ... )\
02360 {\
02361 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME )::An error occured"<<std::endl;\
02362 throw;\
02363 }\
02364 }
02365
02371 #define FUNCTION_TESTING_2( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , PARAM_2_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02372 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 ) throw( nitro::exception )\
02373 {\
02374 try\
02375 {\
02376 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02377 return( ob( FUNCTION_NAME , Param1 , Param2 ) );\
02378 }\
02379 catch( nitro::exception e )\
02380 {\
02381 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME )::"<<e.what()<<std::endl;\
02382 throw;\
02383 }\
02384 catch( ... )\
02385 {\
02386 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME )::An error occured"<<std::endl;\
02387 throw;\
02388 }\
02389 }
02390
02396 #define FUNCTION_TESTING_3( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02397 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 ) throw( nitro::exception )\
02398 {\
02399 try\
02400 {\
02401 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02402 return( ob( FUNCTION_NAME , Param1 , Param2 , Param3 ) );\
02403 }\
02404 catch( nitro::exception e )\
02405 {\
02406 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME )::"<<e.what()<<std::endl;\
02407 throw;\
02408 }\
02409 catch( ... )\
02410 {\
02411 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME )::An error occured"<<std::endl;\
02412 throw;\
02413 }\
02414 }
02415
02421 #define FUNCTION_TESTING_4( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )\
02422 NITRO_EXPORTING ALIAS_RET_TYPE EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 , PARAM_4_TYPE Param4 ) throw( nitro::exception )\
02423 {\
02424 try\
02425 {\
02426 FunctionWrapper< FUNCTION_RET_RYPE > ob;\
02427 return( ob( FUNCTION_NAME , Param1 , Param2 , Param3 , Param4 ) );\
02428 }\
02429 catch( nitro::exception e )\
02430 {\
02431 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::"<<e.what()<<std::endl;\
02432 throw;\
02433 }\
02434 catch( ... )\
02435 {\
02436 std::cout<<"EXPORT_FUNCTION_ALIAS( PARAM_1_TYPE PARAM_1_NAME , PARAM_2_TYPE PARAM_2_NAME , PARAM_3_TYPE PARAM_3_NAME , PARAM_4_TYPE PARAM_4_NAME )::An error occured"<<std::endl;\
02437 throw;\
02438 }\
02439 }
02440
02446 #define ALIAS_FUNCTION_0( FUNCTION_NAME , ALIAS_FUNCTION_NAME )\
02447 void ALIAS_FUNCTION_NAME( void )\
02448 {\
02449 FUNCTION_NAME();\
02450 }
02451
02457 #define ALIAS_FUNCTION_0R( FUNCTION_NAME , ALIAS_FUNCTION_NAME , RETURN_TYPE )\
02458 RETURN_TYPE ALIAS_FUNCTION_NAME( void )\
02459 {\
02460 return( FUNCTION_NAME() );\
02461 }
02462
02468 #define ALIAS_FUNCTION_1( FUNCTION_NAME , ALIAS_FUNCTION_NAME , PARAM_1_TYPE )\
02469 void ALIAS_FUNCTION_NAME( PARAM_1_TYPE Param1 )\
02470 {\
02471 FUNCTION_NAME( Param1 );\
02472 }
02473
02479 #define ALIAS_FUNCTION_1R( FUNCTION_NAME , ALIAS_FUNCTION_NAME , PARAM_1_TYPE , RETURN_TYPE )\
02480 RETURN_TYPE ALIAS_FUNCTION_NAME( PARAM_1_TYPE Param1 )\
02481 {\
02482 return( FUNCTION_NAME( Param1 ) );\
02483 }
02484
02490 #define ALIAS_FUNCTION_2( FUNCTION_NAME , ALIAS_FUNCTION_NAME , PARAM_1_TYPE , PARAM_2_TYPE )\
02491 void ALIAS_FUNCTION_NAME( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 )\
02492 {\
02493 FUNCTION_NAME( Param1 , Param2 );\
02494 }
02495
02501 #define ALIAS_FUNCTION_2R( FUNCTION_NAME , ALIAS_FUNCTION_NAME , PARAM_1_TYPE , PARAM_2_TYPE , RETURN_TYPE )\
02502 RETURN_TYPE ALIAS_FUNCTION_NAME( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 )\
02503 {\
02504 return( FUNCTION_NAME( Param1 , Param2 ) );\
02505 }
02506
02512 #define ALIAS_FUNCTION_3( FUNCTION_NAME , ALIAS_FUNCTION_NAME , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE )\
02513 void ALIAS_FUNCTION_NAME( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 )\
02514 {\
02515 FUNCTION_NAME( Param1 , Param2 , Param3 );\
02516 }
02517
02523 #define ALIAS_FUNCTION_3R( FUNCTION_NAME , ALIAS_FUNCTION_NAME , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , RETURN_TYPE )\
02524 RETURN_TYPE ALIAS_FUNCTION_NAME( PARAM_1_TYPE Param1 , PARAM_2_TYPE Param2 , PARAM_3_TYPE Param3 )\
02525 {\
02526 return( FUNCTION_NAME( Param1 , Param2 , Param3 ) );\
02527 }
02528
02534 #define ENABLE_EXTERN_MANAGER( CLASS_NAME ) extern CLASS_NAME##ObjectManager;
02535
02541 #define STATIC_ENTITY static
02542
02543 #else
02544
02545 #define GET_OBJECT_PTR( CLASS_NAME , OBJECT_NAME )
02546
02547 #define GET_OBJECT( CLASS_NAME , OBJECT_NAME )
02548
02549 #define ENABLE_EXTERN_CLASS( CLASS_NAME )
02550
02551 #define ENABLE_CLASS_TESTING( CLASS_NAME )
02552
02553 #define BEGIN_CUSTOM_DECLARATION_0( FUNC_NAME , ALIAS_RET_TYPE )
02554
02555 #define BEGIN_CUSTOM_DECLARATION_1( FUNC_NAME , PARAM_1_TYPE , ALIAS_RET_TYPE )
02556
02557 #define BEGIN_CUSTOM_DECLARATION_2( FUNC_NAME , PARAM_1_TYPE , PARAM_2_TYPE , ALIAS_RET_TYPE )
02558
02559 #define BEGIN_CUSTOM_DECLARATION_3( FUNC_NAME , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , ALIAS_RET_TYPE )
02560
02561 #define BEGIN_CUSTOM_DECLARATION_4( FUNC_NAME , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , ALIAS_RET_TYPE )
02562
02563 #define BEGIN_CUSTOM_DECLARATION_5( FUNC_NAME , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , PARAM_5_TYPE , ALIAS_RET_TYPE )
02564
02565 #define END_CUSTOM_DECLARATION()
02566
02567 #define NO_CONVERT_INPUT( PARAM_NAME , TYPE )
02568
02569 #define NO_CONVERT_OUTPUT( PARAM_NAME , TYPE )
02570
02571 #define CONVERT_INPUT( PARAM_NAME , FROM_TYPE , TO_TYPE )
02572
02573 #define CONVERT_OUTPUT( PARAM_NAME , FROM_TYPE , TO_TYPE )
02574
02575 #define CALL_FUNCTION_0( FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02576
02577 #define CALL_FUNCTION_1( FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02578
02579 #define CALL_FUNCTION_2( FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02580
02581 #define CALL_FUNCTION_3( FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02582
02583 #define CALL_FUNCTION_4( FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02584
02585 #define CALL_FUNCTION_5( FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02586
02587 #define CALL_MEMBER_FUNCTION_0( CLASS_NAME , MEMBER_FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02588
02589 #define CALL_MEMBER_FUNCTION_1( CLASS_NAME , MEMBER_FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02590
02591 #define CALL_MEMBER_FUNCTION_2( CLASS_NAME , MEMBER_FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02592
02593 #define CALL_MEMBER_FUNCTION_3( CLASS_NAME , MEMBER_FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02594
02595 #define CALL_MEMBER_FUNCTION_4( CLASS_NAME , MEMBER_FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02596
02597 #define CALL_MEMBER_FUNCTION_5( CLASS_NAME , MEMBER_FUNCTION_NAME , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02598
02599 #define RETURN_RESULT()
02600
02601 #define BEGIN_SIMPLE_SECTION()
02602
02603 #define REGISTER_SIMPLE_TEST( FUNC_NAME )
02604
02605 #define SET_FRIENDSHIP_0R( FRIEND_FUNCTION_NAME , RET_VALUE_TYPE )
02606
02607 #define SET_FRIENDSHIP_1R( FRIEND_FUNCTION_NAME , PARAM_1_TYPE , RET_VALUE_TYPE )
02608
02609 #define SET_FRIENDSHIP_2R( FRIEND_FUNCTION_NAME , PARAM_1_TYPE , PARAM_2_TYPE , RET_VALUE_TYPE )
02610
02611 #define SET_FRIENDSHIP_3R( FRIEND_FUNCTION_NAME , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , RET_VALUE_TYPE )
02612
02613 #define NO_RET
02614
02615 #define CLASS_MEMBER_FUNCTION_TESTING_0( CLASS_NAME , MEMBER_FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MEMBER_RET_RYPE , ALIAS_RET_TYPE )
02616
02617 #define CLASS_MEMBER_FUNCTION_TESTING_1( CLASS_NAME , MEMBER_FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , MEMBER_RET_RYPE , ALIAS_RET_TYPE )
02618
02619 #define CLASS_MEMBER_FUNCTION_TESTING_2( CLASS_NAME , MEMBER_FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , PARAM_2_TYPE , MEMBER_RET_RYPE , ALIAS_RET_TYPE )
02620
02621 #define CLASS_MEMBER_FUNCTION_TESTING_3( CLASS_NAME , MEMBER_FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , MEMBER_RET_RYPE , ALIAS_RET_TYPE )
02622
02623 #define CLASS_MEMBER_FUNCTION_TESTING_4( CLASS_NAME , MEMBER_FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , MEMBER_RET_RYPE , ALIAS_RET_TYPE )
02624
02625 #define FUNCTION_RESULT_MAP_0( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02626
02627 #define FUNCTION_RESULT_MAP_1( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02628
02629 #define FUNCTION_RESULT_MAP_2( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02630
02631 #define FUNCTION_RESULT_MAP_3( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02632
02633 #define FUNCTION_RESULT_MAP_4( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02634
02635 #define FUNCTION_PARAM_MAP_11( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02636
02637 #define FUNCTION_PARAM_MAP_12( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02638
02639 #define FUNCTION_PARAM_MAP_22( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02640
02641 #define FUNCTION_PARAM_MAP_13( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02642
02643 #define FUNCTION_PARAM_MAP_23( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02644
02645 #define FUNCTION_PARAM_MAP_33( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02646
02647 #define FUNCTION_PARAM_MAP_14( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02648
02649 #define FUNCTION_PARAM_MAP_24( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02650
02651 #define FUNCTION_PARAM_MAP_34( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02652
02653 #define FUNCTION_PARAM_MAP_44( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , MAP_FUNCTION , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02654
02655 #define FUNCTION_TESTING_0( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02656
02657 #define FUNCTION_TESTING_1( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02658
02659 #define FUNCTION_TESTING_2( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , PARAM_2_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02660
02661 #define FUNCTION_TESTING_3( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02662
02663 #define FUNCTION_TESTING_4( FUNCTION_NAME , EXPORT_FUNCTION_ALIAS , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , PARAM_4_TYPE , FUNCTION_RET_RYPE , ALIAS_RET_TYPE )
02664
02665 #define ALIAS_FUNCTION_0( FUNCTION_NAME , ALIAS_FUNCTION_NAME )
02666
02667 #define ALIAS_FUNCTION_0R( FUNCTION_NAME , ALIAS_FUNCTION_NAME , RETURN_TYPE )
02668
02669 #define ALIAS_FUNCTION_1( FUNCTION_NAME , ALIAS_FUNCTION_NAME , PARAM_1_TYPE )
02670
02671 #define ALIAS_FUNCTION_1R( FUNCTION_NAME , ALIAS_FUNCTION_NAME , PARAM_1_TYPE , RETURN_TYPE )
02672
02673 #define ALIAS_FUNCTION_2( FUNCTION_NAME , ALIAS_FUNCTION_NAME , PARAM_1_TYPE , PARAM_2_TYPE )
02674
02675 #define ALIAS_FUNCTION_2R( FUNCTION_NAME , ALIAS_FUNCTION_NAME , PARAM_1_TYPE , PARAM_2_TYPE , RETURN_TYPE )
02676
02677 #define ALIAS_FUNCTION_3( FUNCTION_NAME , ALIAS_FUNCTION_NAME , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE )
02678
02679 #define ALIAS_FUNCTION_3R( FUNCTION_NAME , ALIAS_FUNCTION_NAME , PARAM_1_TYPE , PARAM_2_TYPE , PARAM_3_TYPE , RETURN_TYPE )
02680
02681 #define ENABLE_EXTERN_MANAGER( CLASS_NAME )
02682
02683 #define STATIC_ENTITY
02684
02685 #endif
02686
02690 #define END_TESTING_SECTION() }
02691 }
02692
02693 #endif