コード例 #1
0
ファイル: url.c プロジェクト: rootfs/oio-sds
void
oio_requri_clear (struct oio_requri_s *uri)
{
	oio_str_clean (&uri->path);
	oio_str_clean (&uri->query);
	oio_str_clean (&uri->fragment);
	g_strfreev(uri->query_tokens);
}
コード例 #2
0
static void
_element_clean_tag(struct element_s *e)
{
	if (!e)
		return ;
	oio_str_clean (&e->tagname);
	oio_str_clean (&e->tagvalue);
}
コード例 #3
0
void
sqlx_name_clean (struct sqlx_name_mutable_s *n)
{
	if (!n) return;
	oio_str_clean(&n->ns);
	oio_str_clean(&n->base);
	oio_str_clean(&n->type);
}
コード例 #4
0
	void cleanup(void) {
		oio_str_clean (&msg);
		oio_str_clean (&access);
		oio_str_clean ((gchar**)&body.data);
		body.len = 0;
		if (headers) {
			g_tree_destroy(headers);
			headers = NULL;
		}
	}
コード例 #5
0
void
chunk_textinfo_free_content(struct chunk_textinfo_s *cti)
{
	if (!cti)
		return;
	oio_str_clean (&cti->id);
	oio_str_clean (&cti->size);
	oio_str_clean (&cti->hash);
	oio_str_clean (&cti->position);
	oio_str_clean (&cti->metadata);
}
コード例 #6
0
	void cleanup(void) {
		oio_str_clean (&msg);
		oio_str_clean (&access);
		if (body) {
			g_bytes_unref (body);
			body = NULL;
		}
		if (headers) {
			g_tree_destroy(headers);
			headers = NULL;
		}
	}
コード例 #7
0
ファイル: sqlx_client_local.c プロジェクト: chrisz/oio-sds
static void
_local_factory_destroy (struct oio_sqlx_client_factory_s *self)
{
	g_assert (self != NULL);
	struct oio_sqlx_client_factory_LOCAL_s *s =
		(struct oio_sqlx_client_factory_LOCAL_s*) self;
	g_assert (s->vtable == &vtable_factory_LOCAL);
	oio_str_clean (&s->schema);
	oio_str_clean (&s->ns);
	s->vtable = NULL;
	SLICE_FREE (struct oio_sqlx_client_factory_LOCAL_s, s);
}
コード例 #8
0
ファイル: meta0_backend.c プロジェクト: dibaggioj/oio-sds
void
meta0_backend_clean(struct meta0_backend_s *m0)
{
	if (!m0)
		return;
	oio_str_clean (&m0->ns);
	oio_str_clean (&m0->id);
	if (m0->array_by_prefix)
		meta0_utils_array_clean(m0->array_by_prefix);
	if (m0->array_meta1_ref)
		meta0_utils_array_meta1ref_clean(m0->array_meta1_ref);
	g_rw_lock_clear (&m0->rwlock);
	g_free(m0);
}
コード例 #9
0
ファイル: test_str.c プロジェクト: InGenious-Justice/oio-sds
static void
test_autocontainer (void)
{
	struct oio_str_autocontainer_config_s cfg = {
		.src_size = 0, .src_offset = 0, .dst_bits = 17
	};

	guint64 nb0 = 0, nb8 = 0;
	for (unsigned int i0=0; i0<256 ;i0++) {
		for (unsigned int i1=0; i1<256 ;i1++) {
			for (unsigned int i2=0; i2<256 ;i2++) {
				guint8 bin[] = {i0, i1, i2, 0, 0};
				gchar dst[65];

				const char *s = oio_str_autocontainer_hash (bin, sizeof(bin), dst, &cfg);
				g_assert (s != NULL);
				gchar last = s[strlen(s)-1];
				g_assert (last == '0' || last == '8');
				if (last == '0') ++nb0; else ++nb8;
			}
		}
	}
	g_assert (nb0 == nb8);
}

static void
test_clean(void)
{
	gchar *s0 = g_strdup("");
	oio_str_clean(&s0);
	g_assert(NULL == s0);
}
コード例 #10
0
ファイル: test_str.c プロジェクト: korween/oio-sds
static void
test_clean(void)
{
	gchar *s0 = g_strdup("");
	oio_str_clean(&s0);
	g_assert(NULL == s0);
}
コード例 #11
0
ファイル: storage_policy.c プロジェクト: Narthorn/oio-sds
void
storage_class_clean(struct storage_class_s *sc)
{
	if (!sc)
		return;
	oio_str_clean(&sc->name);
	g_slist_free_full(sc->fallbacks, g_free);
	g_free(sc);
}
コード例 #12
0
ファイル: meta2v2_remote.c プロジェクト: rootfs/oio-sds
void
m2v2_list_result_clean (struct list_result_s *p)
{
	if (!p) return;
	_bean_cleanl2(p->beans);
	p->beans = NULL;
	oio_str_clean(&p->next_marker);
	p->truncated = FALSE;
}
コード例 #13
0
ファイル: test_str.c プロジェクト: InGenious-Justice/oio-sds
static void
test_replace (void)
{
	gchar *s0 = g_strdup ("A");
	oio_str_replace (&s0, "B");
	g_assert (!strcmp(s0, "B"));

	oio_str_clean (&s0);
	g_assert (s0 == NULL);
}
コード例 #14
0
ファイル: test_str.c プロジェクト: InGenious-Justice/oio-sds
static void
test_reuse (void)
{
	gchar *s0 = g_strdup ("A"), *s1 = g_strdup ("B");
	oio_str_reuse (&s0, s1);
	g_assert (s0 == s1);

	oio_str_clean (&s1);
	g_assert (s1 == NULL);
}
コード例 #15
0
static void
_q_destroy (struct oio_events_queue_s *self)
{
	if (!self) return;
	struct _queue_AGENT_s *q = (struct _queue_AGENT_s*) self;
	EXTRA_ASSERT(q->vtable == &vtable_AGENT);
	g_async_queue_unref (q->queue);
	oio_str_clean (&q->url);
	g_free (q);
}
コード例 #16
0
ファイル: storage_policy.c プロジェクト: Narthorn/oio-sds
static void
_data_treatments_clean(struct data_treatments_s *dt)
{
	if (!dt)
		return;

	oio_str_clean(&dt->name);
	if (NULL != dt->params)
		g_hash_table_destroy(dt->params);
	g_free(dt);
}
コード例 #17
0
ファイル: storage_policy.c プロジェクト: Narthorn/oio-sds
static void
_data_security_clean(struct data_security_s *ds)
{
	if (!ds)
		return;

	oio_str_clean(&ds->name);
	if (NULL != ds->params)
		g_hash_table_destroy(ds->params);
	g_free(ds);
}
コード例 #18
0
void
content_textinfo_free_content(struct content_textinfo_s *cti)
{
	if (!cti)
		return;
	oio_str_clean (&cti->container_id);

	oio_str_clean (&cti->content_id);
	oio_str_clean (&cti->path);
	oio_str_clean (&cti->version);
	oio_str_clean (&cti->size);
	oio_str_clean (&cti->chunk_nb);
	oio_str_clean (&cti->storage_policy);

	oio_str_clean (&cti->rawx_list);
	oio_str_clean (&cti->spare_rawx_list);
}
コード例 #19
0
ファイル: ext.c プロジェクト: carriercomm/oio-sds
static void
_local_free (gpointer p)
{
	struct oio_ext_local_s *l = p;
	if (!l)
		return;
	oio_str_clean (&l->reqid);
	if (l->prng) {
		g_rand_free (l->prng);
		l->prng = NULL;
	}
	g_free (l);
}
コード例 #20
0
ファイル: storage_policy.c プロジェクト: Narthorn/oio-sds
void
storage_policy_clean(struct storage_policy_s *sp)
{
	if (!sp)
		return;

	oio_str_clean(&sp->name);
	if (NULL != sp->datasec)
		_data_security_clean(sp->datasec);
	if (NULL != sp->datatreat)
		_data_treatments_clean(sp->datatreat);
	if (NULL != sp->stgclass)
		storage_class_clean(sp->stgclass);
	g_free(sp);
}
コード例 #21
0
ファイル: sqlx_service.c プロジェクト: live-for-dream/oio-sds
static void
sqlx_service_specific_fini(void)
{
	// soft stop
	if (SRV.gtq_reload)
		grid_task_queue_stop(SRV.gtq_reload);
	if (SRV.gtq_admin)
		grid_task_queue_stop(SRV.gtq_admin);

	if (SRV.server) {
		network_server_close_servers(SRV.server);
		network_server_stop(SRV.server);
	}

	if (SRV.thread_reload)
		g_thread_join(SRV.thread_reload);
	if (SRV.thread_admin)
		g_thread_join(SRV.thread_admin);
	if (SRV.thread_client)
		g_thread_join(SRV.thread_client);
	if (SRV.thread_queue)
		g_thread_join(SRV.thread_queue);

	if (SRV.repository) {
		sqlx_repository_stop(SRV.repository);
		struct sqlx_cache_s *cache = sqlx_repository_get_cache(SRV.repository);
		if (cache)
			sqlx_cache_expire(cache, G_MAXUINT, 0);
	}
	if (SRV.election_manager)
		election_manager_exit_all(SRV.election_manager, 0, TRUE);
	if (SRV.sync)
		sqlx_sync_close(SRV.sync);
	if (SRV.peering)
		sqlx_peering__destroy(SRV.peering);

	// Cleanup
	if (SRV.gtq_admin) {
		grid_task_queue_destroy(SRV.gtq_admin);
		SRV.gtq_admin = NULL;
	}
	if (SRV.gtq_reload) {
		grid_task_queue_destroy(SRV.gtq_reload);
		SRV.gtq_reload = NULL;
	}

	if (SRV.server) {
		network_server_clean(SRV.server);
		SRV.server = NULL;
	}
	if (SRV.dispatcher) {
		gridd_request_dispatcher_clean(SRV.dispatcher);
		SRV.dispatcher = NULL;
	}
	if (SRV.repository) {
		sqlx_repository_clean(SRV.repository);
		SRV.repository = NULL;
	}
	if (SRV.sync) {
		sqlx_sync_clear(SRV.sync);
		SRV.sync = NULL;
	}
	if (SRV.resolver) {
		hc_resolver_destroy(SRV.resolver);
		SRV.resolver = NULL;
	}

	if (SRV.announce) {
		g_string_free(SRV.announce, TRUE);
		SRV.announce = NULL;
	}
	if (SRV.url) {
		g_string_free(SRV.url, TRUE);
		SRV.url = NULL;
	}
	if (SRV.zk_url)
		oio_str_clean(&SRV.zk_url);

	if (SRV.clients_pool) {
		gridd_client_pool_destroy (SRV.clients_pool);
		SRV.clients_pool = NULL;
	}

	// Must be freed after SRV.clients_pool
	if (SRV.election_manager) {
		election_manager_clean(SRV.election_manager);
		SRV.election_manager = NULL;
	}

	if (SRV.lb) {
		grid_lbpool_destroy (SRV.lb);
		SRV.lb = NULL;
	}

	if (SRV.events_queue) {
		oio_events_queue__destroy (SRV.events_queue);
		SRV.events_queue = NULL;
	}

	if (SRV.nsinfo) {
		namespace_info_free(SRV.nsinfo);
		SRV.nsinfo = NULL;
	}
	if (all_options) {
		g_free (all_options);
		all_options = NULL;
	}
}
コード例 #22
0
ファイル: sqlx_service.c プロジェクト: racciari/oio-sds
static void
sqlx_service_specific_fini(void)
{
	// soft stop
	if (SRV.gtq_reload)
		grid_task_queue_stop(SRV.gtq_reload);
	if (SRV.gtq_register)
		grid_task_queue_stop(SRV.gtq_register);
	if (SRV.gtq_admin)
		grid_task_queue_stop(SRV.gtq_admin);

	if (SRV.server) {
		network_server_close_servers(SRV.server);
		network_server_stop(SRV.server);
	}

	if (SRV.thread_reload)
		g_thread_join(SRV.thread_reload);
	if (SRV.thread_register)
		g_thread_join(SRV.thread_register);
	if (SRV.thread_admin)
		g_thread_join(SRV.thread_admin);
	if (SRV.thread_client)
		g_thread_join(SRV.thread_client);
	if (SRV.thread_queue)
		g_thread_join(SRV.thread_queue);

	if (SRV.repository) {
		sqlx_repository_stop(SRV.repository);
		struct sqlx_cache_s *cache = sqlx_repository_get_cache(SRV.repository);
		if (cache)
			sqlx_cache_expire(cache, G_MAXUINT, 0);
	}
	if (SRV.election_manager)
		election_manager_exit_all(SRV.election_manager, 0, TRUE);
	if (SRV.sync)
		sqlx_sync_close(SRV.sync);

	// Cleanup
	if (SRV.gtq_admin)
		grid_task_queue_destroy(SRV.gtq_admin);
	if (SRV.gtq_reload)
		grid_task_queue_destroy(SRV.gtq_reload);
	if (SRV.gtq_register)
		grid_task_queue_destroy(SRV.gtq_register);

	if (SRV.server)
		network_server_clean(SRV.server);
	if (SRV.dispatcher)
		gridd_request_dispatcher_clean(SRV.dispatcher);
	if (SRV.repository)
		sqlx_repository_clean(SRV.repository);
	if (SRV.election_manager)
		election_manager_clean(SRV.election_manager);
	if (SRV.sync)
		sqlx_sync_clear(SRV.sync);
	if (SRV.resolver)
		hc_resolver_destroy(SRV.resolver);

	if (SRV.gsr_reqtime)
		grid_single_rrd_destroy(SRV.gsr_reqtime);
	if (SRV.gsr_reqcounter)
		grid_single_rrd_destroy(SRV.gsr_reqcounter);

	if (SRV.custom_tags)
		g_slist_free_full(SRV.custom_tags, g_free);
	if (SRV.si)
		service_info_clean(SRV.si);
	if (SRV.announce)
		g_string_free(SRV.announce, TRUE);
	if (SRV.url)
		g_string_free(SRV.url, TRUE);
	if (SRV.zk_url)
		oio_str_clean(&SRV.zk_url);

	if (SRV.clients_pool)
		gridd_client_pool_destroy (SRV.clients_pool);

	if (SRV.lb)
		grid_lbpool_destroy (SRV.lb);

	if (SRV.events_queue)
		oio_events_queue__destroy (SRV.events_queue);

	if (SRV.nsinfo)
		namespace_info_free(SRV.nsinfo);
	if (all_options) {
		g_free (all_options);
		all_options = NULL;
	}
}