glib/tsrc/glib_nonstif/src/closure-marshal.c
branchRCL_3
changeset 57 2efc27d87e1c
parent 0 e4d67989cc36
equal deleted inserted replaced
56:acd3cd4aaceb 57:2efc27d87e1c
       
     1 /* GObject - GLib Type, Object, Parameter and Signal Library
       
     2  * Copyright (C) 2001, 2003 Red Hat, Inc.
       
     3  *
       
     4  * This library is free software; you can redistribute it and/or
       
     5  * modify it under the terms of the GNU Lesser General Public
       
     6  * License as published by the Free Software Foundation; either
       
     7  * version 2 of the License, or (at your option) any later version.
       
     8  *
       
     9  * This library is distributed in the hope that it will be useful,
       
    10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       
    12  * Lesser General Public License for more details.
       
    13  *
       
    14  * You should have received a copy of the GNU Lesser General
       
    15  * Public License along with this library; if not, write to the
       
    16  * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
       
    17  * Boston, MA 02111-1307, USA.
       
    18  */
       
    19 
       
    20 #undef G_DISABLE_ASSERT
       
    21 #undef G_LOG_DOMAIN
       
    22 
       
    23 #undef G_DISABLE_ASSERT
       
    24 #undef G_DISABLE_CHECKS
       
    25 #undef G_DISABLE_CAST_CHECKS
       
    26 
       
    27 #include <string.h>
       
    28 
       
    29 #include <glib-object.h>
       
    30 
       
    31 #include "testcommon.h"
       
    32 
       
    33 #ifdef __SYMBIAN32__
       
    34 #include "mrt2_glib2_test.h"
       
    35 #endif /*__SYMBIAN32__*/
       
    36 
       
    37 
       
    38 /* Tests for all cclosure_marshal APIs */
       
    39 
       
    40 /*
       
    41  * TestObject, a parent class for TestObject
       
    42  */
       
    43 #define TEST_TYPE_OBJECT          (test_object_get_type ())
       
    44 typedef struct _TestObject        TestObject;
       
    45 typedef struct _TestObjectClass   TestObjectClass;
       
    46 
       
    47 typedef struct 
       
    48 {
       
    49    int a;
       
    50    char c;		
       
    51 	
       
    52 }TestInputClass;
       
    53 
       
    54 struct _TestObject
       
    55 {
       
    56    GObject parent_instance;
       
    57 };
       
    58 
       
    59 struct _TestObjectClass
       
    60 {
       
    61   GObjectClass parent_class;
       
    62 
       
    63   void   (*test_signal1) (TestObject *tobject,
       
    64 			    gint        param);
       
    65   
       
    66   //flags as parameter == ulong
       
    67   gboolean  (*test_signal2) (TestObject *tobject,
       
    68 			    gulong        param);
       
    69   
       
    70   void  (*test_signal3) (TestObject *tobject,
       
    71 			    gpointer      param);
       
    72 			    
       
    73   void (*test_signal4) (TestObject *tobject,
       
    74 			    gchar      param);   
       
    75 			    
       
    76   void (*test_signal5) (TestObject *tobject,
       
    77 			    gdouble    param);  
       
    78   
       
    79   //enum == long		    
       
    80   void (*test_signal6) (TestObject *tobject,
       
    81 			    glong    param);    			    
       
    82 
       
    83   void (*test_signal7) (TestObject *tobject,
       
    84 			    gulong    param);    	
       
    85 			    
       
    86   void (*test_signal8) (TestObject *tobject,
       
    87 			    gfloat    param);   				    		    
       
    88 
       
    89   void (*test_signal9) (TestObject *tobject,
       
    90 			    glong    param);  
       
    91 			    
       
    92   //object
       
    93   void (*test_signal10) (TestObject *tobject,
       
    94 			    GObject  *param);  
       
    95 			     				  
       
    96   //pointer
       
    97   void (*test_signal11) (TestObject *tobject,
       
    98 			    gpointer  param); 		     				  	    		    
       
    99 			    
       
   100   void (*test_signal12) (TestObject *tobject,
       
   101 			    gchar*  param); 		     				  	    		    
       
   102   			    
       
   103   void (*test_signal13) (TestObject *tobject,
       
   104 			    guchar  param); 
       
   105 			    
       
   106   void (*test_signal14) (TestObject *tobject,
       
   107 			    guint  param); 		
       
   108   
       
   109   void (*test_signal15) (TestObject *tobject,
       
   110 			    gulong  param); 					    	    		     				  	    		    
       
   111 
       
   112   void (*test_signal16) (TestObject *tobject,
       
   113 			    guint  param1,
       
   114 			    gpointer param2); 					    	    		     				  	    		    
       
   115 
       
   116   void (*test_signal17) (TestObject *tobject,
       
   117 			    GParamSpec *param); 					    	    		     				  	    		    
       
   118 };
       
   119 
       
   120 static GType test_object_get_type (void);
       
   121 
       
   122 /* Test input for Enums */
       
   123 enum
       
   124 {
       
   125    TEST_ENUM1,
       
   126    TEST_ENUM2
       
   127 };
       
   128 
       
   129 //VOID__BOOLEAN
       
   130 void
       
   131 test_object_real_signal1 (TestObject *tobject,
       
   132 			  gint        param)
       
   133 {
       
   134   g_assert(((gint)param == 10));
       
   135 }
       
   136 
       
   137 //BOOLEAN__FLAGS
       
   138 gboolean
       
   139 test_object_signal2_callback_before (TestObject *tobject,
       
   140 				     gulong        param)
       
   141 {
       
   142   switch (param)
       
   143     {
       
   144     case 1: return TRUE;
       
   145     case 2: return FALSE;
       
   146     case 3: return FALSE;
       
   147     case 4: return FALSE;
       
   148     }
       
   149 
       
   150   g_assert_not_reached ();
       
   151   return FALSE;
       
   152 }
       
   153 
       
   154 gboolean
       
   155 test_object_real_signal2 (TestObject *tobject,
       
   156 			  gulong        param)
       
   157 {
       
   158   switch (param)
       
   159     {
       
   160     case 1: g_assert_not_reached (); return FALSE;
       
   161     case 2: return TRUE;
       
   162     case 3: return FALSE;
       
   163     case 4: return FALSE;
       
   164     }
       
   165   
       
   166   g_assert_not_reached ();
       
   167   return FALSE;
       
   168 }
       
   169 
       
   170 gboolean
       
   171 test_object_signal2_callback_after (TestObject *tobject,
       
   172 				     gulong        param)
       
   173 {
       
   174   switch (param)
       
   175     {
       
   176     case 1: g_assert_not_reached (); return FALSE;
       
   177     case 2: g_assert_not_reached (); return FALSE;
       
   178     case 3: return TRUE;
       
   179     case 4: return FALSE;
       
   180     }
       
   181       
       
   182   g_assert_not_reached ();
       
   183   return FALSE;
       
   184 }
       
   185 
       
   186 //VOID__BOXED
       
   187 void
       
   188 test_object_real_signal3 (TestObject *tobject,
       
   189 			  gpointer        param)
       
   190 {
       
   191   g_assert((strcmp(param, "test-string") == 0));
       
   192 }
       
   193 
       
   194 //VOID__CHAR
       
   195 void
       
   196 test_object_real_signal4 (TestObject *tobject,
       
   197 	    	  gchar        param)
       
   198 {
       
   199   g_assert(((gchar)param == 'A'));  
       
   200 }
       
   201 
       
   202 //VOID__DOUBLE
       
   203 void
       
   204 test_object_real_signal5 (TestObject *tobject,
       
   205 	    	  gdouble       param)
       
   206 {
       
   207   g_assert(((gdouble)param == 2500000));  
       
   208 }
       
   209 
       
   210  //VOID__ENUM
       
   211 void
       
   212 test_object_real_signal6 (TestObject *tobject,
       
   213 	    	  glong       param)
       
   214 {
       
   215   g_assert(((glong)param == TEST_ENUM2));  
       
   216 }
       
   217  
       
   218 //VOID__FLAGS
       
   219 void
       
   220 test_object_real_signal7 (TestObject *tobject,
       
   221 	    	  gulong       param)
       
   222 {
       
   223   g_assert(((gulong)param == 1980l));  
       
   224 }
       
   225 
       
   226 //VOID__FLOAT
       
   227 void
       
   228 test_object_real_signal8 (TestObject *tobject,
       
   229 	    	  gfloat       param)
       
   230 {
       
   231   g_assert(((gfloat)param == 11.23f));    
       
   232 }
       
   233 
       
   234 //VOID__LONG
       
   235 void
       
   236 test_object_real_signal9 (TestObject *tobject,
       
   237 	    	  glong       param)
       
   238 {
       
   239   g_assert(((glong)param == -748l));   
       
   240 }
       
   241 
       
   242 //VOID__OBJECT
       
   243 void
       
   244 test_object_real_signal10 (TestObject *tobject,
       
   245 	    	   GObject  *param)
       
   246 {  
       
   247   g_assert(G_IS_OBJECT(param) == TRUE);  
       
   248 }
       
   249 
       
   250 //VOID__STRING
       
   251 void
       
   252 test_object_real_signal12 (TestObject *tobject,
       
   253 	    	  gchar*      param)
       
   254 {  
       
   255   g_assert((strcmp(param, "string_input") == 0));  
       
   256 }
       
   257 
       
   258 //VOID__UCHAR
       
   259 void
       
   260 test_object_real_signal13 (TestObject *tobject,
       
   261 	    	  guchar      param)
       
   262 {  
       
   263   g_assert(param == '>');  
       
   264 }
       
   265 
       
   266 
       
   267 //VOID__UINT
       
   268 void
       
   269 test_object_real_signal14 (TestObject *tobject,
       
   270 	    	  guint     param)
       
   271 {  
       
   272   g_assert(param == 10000);  
       
   273 }
       
   274 
       
   275 //VOID__UINT_POINTER
       
   276 void
       
   277 test_object_real_signal16 (TestObject *tobject,
       
   278 	    	  guint     param1,
       
   279 	    	  gpointer  param2)
       
   280 {  
       
   281   g_assert((param1 == 10000) && (strcmp(param2, "test-string") == 0));  
       
   282 }
       
   283 
       
   284 //VOID__PARAM
       
   285 void
       
   286 test_object_real_signal17 (TestObject *tobject,
       
   287 	    	  GParamSpec      *param)	    	  
       
   288 {  
       
   289   g_assert(G_IS_PARAM_SPEC(param) == TRUE);
       
   290   g_assert(!strcmp(param->_nick , "Hello"));
       
   291   g_assert (!strcmp(param->name , "String1"));  
       
   292 }
       
   293 
       
   294 //Class init function
       
   295 static void
       
   296 test_object_class_init (TestObjectClass *class)
       
   297 {
       
   298   class->test_signal1 = test_object_real_signal1;
       
   299   class->test_signal2 = test_object_real_signal2;
       
   300   class->test_signal3 = test_object_real_signal3;
       
   301   class->test_signal4 = test_object_real_signal4;
       
   302   class->test_signal5 = test_object_real_signal5;
       
   303   class->test_signal6 = test_object_real_signal6;
       
   304   class->test_signal7 = test_object_real_signal7;
       
   305   class->test_signal8 = test_object_real_signal8;
       
   306   class->test_signal9 = test_object_real_signal9;  
       
   307   class->test_signal10 = test_object_real_signal10;  
       
   308   class->test_signal11= test_object_real_signal3; //since both are doing the same
       
   309   class->test_signal12= test_object_real_signal12;
       
   310   class->test_signal13= test_object_real_signal13;
       
   311   class->test_signal14= test_object_real_signal14;
       
   312   class->test_signal15= test_object_real_signal7; //both are doing the same comparison
       
   313   class->test_signal16= test_object_real_signal16; 
       
   314   class->test_signal17= test_object_real_signal17; 
       
   315   
       
   316   g_signal_new ("test-signal1",
       
   317 		G_OBJECT_CLASS_TYPE (class),
       
   318 		G_SIGNAL_RUN_LAST,
       
   319 		G_STRUCT_OFFSET (TestObjectClass, test_signal1),
       
   320 		NULL, NULL,
       
   321 		g_cclosure_marshal_VOID__BOOLEAN ,
       
   322 		G_TYPE_NONE, 1, G_TYPE_INT);
       
   323   
       
   324   g_signal_new ("test-signal2",
       
   325 		G_OBJECT_CLASS_TYPE (class),
       
   326 		G_SIGNAL_RUN_LAST,
       
   327 		G_STRUCT_OFFSET (TestObjectClass, test_signal2),
       
   328 		g_signal_accumulator_true_handled, NULL,
       
   329 		g_cclosure_marshal_BOOLEAN__FLAGS,
       
   330 		G_TYPE_BOOLEAN, 1, G_TYPE_ULONG);
       
   331 		
       
   332   g_signal_new ("test-signal3",
       
   333 		G_OBJECT_CLASS_TYPE (class),
       
   334 		G_SIGNAL_RUN_LAST,
       
   335 		G_STRUCT_OFFSET (TestObjectClass, test_signal3),
       
   336 		NULL, NULL,
       
   337 		g_cclosure_marshal_VOID__BOXED,
       
   338 		G_TYPE_NONE, 1, G_TYPE_POINTER);
       
   339 		
       
   340   g_signal_new ("test-signal4",
       
   341 		G_OBJECT_CLASS_TYPE (class),
       
   342 		G_SIGNAL_RUN_LAST,
       
   343 		G_STRUCT_OFFSET (TestObjectClass, test_signal4),
       
   344 		NULL, NULL,
       
   345 		g_cclosure_marshal_VOID__CHAR,
       
   346 		G_TYPE_NONE, 1, G_TYPE_CHAR);
       
   347 
       
   348   g_signal_new ("test-signal5",
       
   349 		G_OBJECT_CLASS_TYPE (class),
       
   350 		G_SIGNAL_RUN_LAST,
       
   351 		G_STRUCT_OFFSET (TestObjectClass, test_signal5),
       
   352 		NULL, NULL,
       
   353 		g_cclosure_marshal_VOID__DOUBLE,
       
   354 		G_TYPE_NONE, 1, G_TYPE_DOUBLE);
       
   355 
       
   356   g_signal_new ("test-signal6",
       
   357 		G_OBJECT_CLASS_TYPE (class),
       
   358 		G_SIGNAL_RUN_LAST,
       
   359 		G_STRUCT_OFFSET (TestObjectClass, test_signal6),
       
   360 		NULL, NULL,
       
   361 		g_cclosure_marshal_VOID__ENUM,
       
   362 		G_TYPE_NONE, 1, G_TYPE_LONG);
       
   363 
       
   364   g_signal_new ("test-signal7",
       
   365 		G_OBJECT_CLASS_TYPE (class),
       
   366 		G_SIGNAL_RUN_LAST,
       
   367 		G_STRUCT_OFFSET (TestObjectClass, test_signal7),
       
   368 		NULL, NULL,
       
   369 		g_cclosure_marshal_VOID__FLAGS,
       
   370 		G_TYPE_NONE, 1, G_TYPE_ULONG);		
       
   371 			
       
   372   g_signal_new ("test-signal8",
       
   373 		G_OBJECT_CLASS_TYPE (class),
       
   374 		G_SIGNAL_RUN_LAST,
       
   375 		G_STRUCT_OFFSET (TestObjectClass, test_signal8),
       
   376 		NULL, NULL,
       
   377 		g_cclosure_marshal_VOID__FLOAT,
       
   378 		G_TYPE_NONE, 1, G_TYPE_FLOAT);		
       
   379 		
       
   380   g_signal_new ("test-signal9",
       
   381 		G_OBJECT_CLASS_TYPE (class),
       
   382 		G_SIGNAL_RUN_LAST,
       
   383 		G_STRUCT_OFFSET (TestObjectClass, test_signal9),
       
   384 		NULL, NULL,
       
   385 		g_cclosure_marshal_VOID__LONG,
       
   386 		G_TYPE_NONE, 1, G_TYPE_LONG);
       
   387 		
       
   388   g_signal_new ("test-signal10",
       
   389 		G_OBJECT_CLASS_TYPE (class),
       
   390 		G_SIGNAL_RUN_LAST,
       
   391 		G_STRUCT_OFFSET (TestObjectClass, test_signal10),
       
   392 		NULL, NULL,
       
   393 		g_cclosure_marshal_VOID__OBJECT,
       
   394 		G_TYPE_NONE, 1, TEST_TYPE_OBJECT);	
       
   395 		
       
   396    g_signal_new ("test-signal11",
       
   397 		G_OBJECT_CLASS_TYPE (class),
       
   398 		G_SIGNAL_RUN_LAST,
       
   399 		G_STRUCT_OFFSET (TestObjectClass, test_signal11),
       
   400 		NULL, NULL,
       
   401 		g_cclosure_marshal_VOID__POINTER,
       
   402 		G_TYPE_NONE, 1, G_TYPE_POINTER);
       
   403 		
       
   404    g_signal_new ("test-signal12",
       
   405 		G_OBJECT_CLASS_TYPE (class),
       
   406 		G_SIGNAL_RUN_LAST,
       
   407 		G_STRUCT_OFFSET (TestObjectClass, test_signal12),
       
   408 		NULL, NULL,
       
   409 		g_cclosure_marshal_VOID__STRING,
       
   410 		G_TYPE_NONE, 1, G_TYPE_STRING);	
       
   411 		
       
   412 	g_signal_new ("test-signal13",
       
   413 		G_OBJECT_CLASS_TYPE (class),
       
   414 		G_SIGNAL_RUN_LAST,
       
   415 		G_STRUCT_OFFSET (TestObjectClass, test_signal13),
       
   416 		NULL, NULL,
       
   417 		g_cclosure_marshal_VOID__UCHAR,
       
   418 		G_TYPE_NONE, 1, G_TYPE_UCHAR);	
       
   419 		
       
   420    	g_signal_new ("test-signal14",
       
   421 		G_OBJECT_CLASS_TYPE (class),
       
   422 		G_SIGNAL_RUN_LAST,
       
   423 		G_STRUCT_OFFSET (TestObjectClass, test_signal14),
       
   424 		NULL, NULL,
       
   425 		g_cclosure_marshal_VOID__UINT,
       
   426 		G_TYPE_NONE, 1, G_TYPE_UINT);
       
   427 	
       
   428 	g_signal_new ("test-signal15",
       
   429 		G_OBJECT_CLASS_TYPE (class),
       
   430 		G_SIGNAL_RUN_LAST,
       
   431 		G_STRUCT_OFFSET (TestObjectClass, test_signal15),
       
   432 		NULL, NULL,
       
   433 		g_cclosure_marshal_VOID__ULONG,
       
   434 		G_TYPE_NONE, 1, G_TYPE_ULONG);
       
   435 		
       
   436     g_signal_new ("test-signal16",
       
   437 		G_OBJECT_CLASS_TYPE (class),
       
   438 		G_SIGNAL_RUN_LAST,
       
   439 		G_STRUCT_OFFSET (TestObjectClass, test_signal16),
       
   440 		NULL, NULL,
       
   441 		g_cclosure_marshal_VOID__UINT_POINTER,
       
   442 		G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_POINTER);	
       
   443 		
       
   444 	g_signal_new ("test-signal17",
       
   445 		G_OBJECT_CLASS_TYPE (class),
       
   446 		G_SIGNAL_RUN_LAST,
       
   447 		G_STRUCT_OFFSET (TestObjectClass, test_signal17),
       
   448 		NULL, NULL,
       
   449 		g_cclosure_marshal_VOID__PARAM,
       
   450 		G_TYPE_NONE, 1, G_TYPE_PARAM);											
       
   451 }
       
   452 
       
   453 static DEFINE_TYPE(TestObject, test_object,
       
   454 		   test_object_class_init, NULL, NULL,
       
   455 		   G_TYPE_OBJECT)		   
       
   456 
       
   457 int
       
   458 main (int   argc,
       
   459       char *argv[])
       
   460 {
       
   461   TestObject *object;  
       
   462   gboolean bool_result;
       
   463   gpointer i_string = "test-string";
       
   464   gchar    i_char   = 'A';
       
   465   gdouble  i_double = 2500000; //typically 8 bytes  
       
   466   gfloat   i_float  = 11.23f;
       
   467   gulong   i_ulong  = 1980l;
       
   468   glong    i_long 	= -748l;
       
   469   gchar*   i_char_string = "string_input";
       
   470   guchar   i_uchar  ='>'; 
       
   471   TestObject *i_input_obj;  	
       
   472   GParamFlags i_flags;
       
   473   GParamSpec* i_paramSpec;	
       
   474   	
       
   475   #ifdef __SYMBIAN32__
       
   476   g_log_set_handler (NULL,  G_LOG_FLAG_FATAL| G_LOG_FLAG_RECURSION | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO | G_LOG_LEVEL_DEBUG, &mrtLogHandler, NULL);
       
   477   #endif /*__SYMBIAN32__*/
       
   478 	  
       
   479 
       
   480   /*g_log_set_always_fatal (g_log_set_always_fatal (G_LOG_FATAL_MASK) |
       
   481 			  G_LOG_LEVEL_WARNING |
       
   482 			  G_LOG_LEVEL_CRITICAL);*/
       
   483   g_type_init ();
       
   484 
       
   485   object = g_object_new (TEST_TYPE_OBJECT, NULL);
       
   486 
       
   487   //VOID__BOOLEAN  
       
   488   g_signal_emit_by_name (object, "test-signal1", 10, 0);  
       
   489   
       
   490 
       
   491   //BOOLEAN__FLAGS
       
   492   g_signal_connect (object, "test-signal2",
       
   493 		    G_CALLBACK (test_object_signal2_callback_before), NULL);
       
   494   g_signal_connect_after (object, "test-signal2",
       
   495 			  G_CALLBACK (test_object_signal2_callback_after), NULL);
       
   496   
       
   497   bool_result = FALSE;
       
   498   g_signal_emit_by_name (object, "test-signal2", 1, &bool_result);
       
   499   g_assert (bool_result == TRUE);
       
   500   bool_result = FALSE;
       
   501   g_signal_emit_by_name (object, "test-signal2", 2, &bool_result);
       
   502   g_assert (bool_result == TRUE);
       
   503   bool_result = FALSE;
       
   504   g_signal_emit_by_name (object, "test-signal2", 3, &bool_result);
       
   505   g_assert (bool_result == TRUE);
       
   506   bool_result = TRUE;
       
   507   g_signal_emit_by_name (object, "test-signal2", 4, &bool_result);
       
   508   g_assert (bool_result == FALSE);
       
   509   
       
   510  
       
   511   //VOID__BOXED
       
   512   g_signal_emit_by_name (object, "test-signal3", i_string, NULL);
       
   513   
       
   514   //VOID__CHAR
       
   515   g_signal_emit_by_name (object, "test-signal4", i_char, NULL);
       
   516   
       
   517   //VOID__DOUBLE
       
   518   g_signal_emit_by_name (object, "test-signal5", i_double, NULL);
       
   519   
       
   520   //VOID__ENUM
       
   521   g_signal_emit_by_name (object, "test-signal6", TEST_ENUM2, NULL);
       
   522 
       
   523   //VOID__FLAGS
       
   524   g_signal_emit_by_name (object, "test-signal7", i_ulong, NULL);
       
   525   
       
   526   //VOID__FLOAT
       
   527   g_signal_emit_by_name (object, "test-signal8", i_float, NULL);
       
   528   
       
   529   //VOID__FLOAT
       
   530   g_signal_emit_by_name (object, "test-signal9", i_long, NULL);  
       
   531   
       
   532   //VOID__OBJECT
       
   533   i_input_obj = g_object_new (TEST_TYPE_OBJECT, NULL);
       
   534   g_signal_emit_by_name (object, "test-signal10", i_input_obj, NULL);  
       
   535   
       
   536   //VOID__POINTER
       
   537   g_signal_emit_by_name (object, "test-signal11", i_string, NULL);
       
   538   
       
   539   //VOID__STRING
       
   540   g_signal_emit_by_name (object, "test-signal12", i_char_string, NULL);
       
   541   
       
   542   //VOID__UCHAR  
       
   543   g_signal_emit_by_name (object, "test-signal13", i_uchar, NULL);
       
   544   
       
   545   //VOID__UINT
       
   546   g_signal_emit_by_name (object, "test-signal14", 10000, NULL);
       
   547   
       
   548   //VOID__ULONG
       
   549   g_signal_emit_by_name (object, "test-signal15", i_ulong, NULL);
       
   550   
       
   551   //VOID_UNIT__POINTER
       
   552   g_signal_emit_by_name (object, "test-signal16", 10000, i_string,NULL);  
       
   553  
       
   554   //VOID__PARAM  
       
   555   i_paramSpec = g_param_spec_uchar("String1","Hello","World", 0,100,10, i_flags);
       
   556   g_signal_emit_by_name (object, "test-signal17", i_paramSpec, NULL);   
       
   557   
       
   558   #if __SYMBIAN32__
       
   559   testResultXml("closure-marshal");
       
   560   #endif
       
   561   
       
   562   return 0;
       
   563 }