static void
test_copy (void)
{
	int i, j;
#define ELEMS (sizeof (tc) / sizeof (tc[0]))
	CORBA_TypeCode tc[] = {
		TC_CORBA_octet,
		TC_CORBA_sequence_CORBA_octet,
		TC_CORBA_double,
		TC_CORBA_string,
		TC_CORBA_sequence_CORBA_string,
		TC_GIOP_TargetAddress		
	};
	gpointer data [ELEMS];
	const char *test_string = "This is a sample string, for dupping";

	fprintf (stderr, "Testing copy...\n");

	for (i = 0; i < ELEMS; i++) {
		data [i] = ORBit_dynany_new_default (tc [i]);

		g_timer_reset (timer);
		for (j = 0; j < 1000; j++) {
			gpointer foo = ORBit_copy_value (data [i], tc [i]);
			CORBA_free (foo);
		}
		elapsed_time = g_timer_elapsed (timer, NULL);
		bogomark += elapsed_time;
		fprintf (stderr, " copy %20s : %g(ms)\n",
			tc[i]->repo_id == NULL ? "(null)" : tc[i]->repo_id,
			elapsed_time);
	}

	fprintf (stderr, "Testing strdup ...\n");

	g_timer_reset (timer);
	for (i = 0; i < 10000; i++) {
		char *str = g_strdup (test_string);
		g_free (str);
	}
	elapsed_time = g_timer_elapsed (timer, NULL) / 10.0;
	bogomark += elapsed_time;
	fprintf (stderr, " g_strdup :     %g(ns)\n", elapsed_time * 1000.0);
	
	g_timer_reset (timer);
	for (i = 0; i < 10000; i++) {
		char *str = CORBA_string_dup (test_string);
		CORBA_free (str);
	}
	elapsed_time = g_timer_elapsed (timer, NULL) / 10.0;
	bogomark += elapsed_time;
	fprintf (stderr, " CORBA_strdup : %g(ns)\n", elapsed_time * 1000.0);
}
Exemple #2
0
void 
spi_init_any_object (CORBA_any *any_details, Accessibility_Application app, 
		     Accessibility_Role role,
		     CORBA_string name, 
		     CORBA_Object *o)
{
  Accessibility_EventDetails *details = Accessibility_EventDetails__alloc();

  any_details->_type = TC_Accessibility_EventDetails;
  any_details->_value = details;
  any_details->_release = TRUE;

  details->host_application = app;
  details->source_role = role;
  details->source_name = CORBA_string_dup (name);
  
  details->any_data._type = TC_CORBA_Object;
  details->any_data._value = ORBit_copy_value (o, TC_CORBA_Object);
  details->any_data._release = TRUE;
}