static void
gkm_module_init (GkmModule *self)
{
	gkm_timer_initialize ();

	self->pv = G_TYPE_INSTANCE_GET_PRIVATE (self, GKM_TYPE_MODULE, GkmModulePrivate);
	self->pv->token_manager = g_object_new (GKM_TYPE_MANAGER, "for-token", TRUE, NULL);
	self->pv->sessions_by_handle = g_hash_table_new_full (gkm_util_ulong_hash, gkm_util_ulong_equal,
	                                                      gkm_util_ulong_free, g_object_unref);
	self->pv->apartments_by_id = g_hash_table_new_full (gkm_util_ulong_hash, gkm_util_ulong_equal,
	                                                    gkm_util_ulong_free, apartment_free);
	self->pv->factories = g_array_new (FALSE, TRUE, sizeof (GkmFactory));

	self->pv->handle_counter = 1;

	/* Create the store for transient objects */
	self->pv->transient_store = GKM_STORE (gkm_memory_store_new ());
	self->pv->transient_objects = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, gkm_util_dispose_unref);

	/* Register session object factories */
	gkm_module_register_factory (self, GKM_FACTORY_AES_KEY);
	gkm_module_register_factory (self, GKM_FACTORY_CERTIFICATE);
	gkm_module_register_factory (self, GKM_FACTORY_CREDENTIAL);
	gkm_module_register_factory (self, GKM_FACTORY_NULL_KEY);
	gkm_module_register_factory (self, GKM_FACTORY_DH_PRIVATE_KEY);
	gkm_module_register_factory (self, GKM_FACTORY_PRIVATE_XSA_KEY);
	gkm_module_register_factory (self, GKM_FACTORY_DH_PUBLIC_KEY);
	gkm_module_register_factory (self, GKM_FACTORY_PUBLIC_XSA_KEY);
}
Exemplo n.º 2
0
static void
test_extra_initialize (Test* test, gconstpointer unused)
{
	gkm_timer_initialize ();
	gkm_timer_shutdown ();
}