예제 #1
0
static int mod_init(void)
{
	cachedb_engine cde;

	LM_NOTICE("initializing module cachedb_memcached\n");

	cde.name = cache_mod_name;

	cde.cdb_func.init = memcached_init;
	cde.cdb_func.destroy = memcached_destroy;
	cde.cdb_func.get = wrap_memcached_get;
	cde.cdb_func.get_counter = wrap_memcached_get_counter;
	cde.cdb_func.set = wrap_memcached_insert;
	cde.cdb_func.remove = wrap_memcached_remove;
	cde.cdb_func.add = wrap_memcached_add;
	cde.cdb_func.sub = wrap_memcached_sub;

	cde.cdb_func.capability = CACHEDB_CAP_BINARY_VALUE;
	
	if (register_cachedb(&cde) < 0) {
		LM_ERR("failed to initialize cachedb_memcached\n");
		return -1;
	}

	LM_DBG("succesfully inited cachedb_memcached\n");
	return 0;
}
예제 #2
0
/**
 * init module function
 */
static int mod_init(void)
{
	cachedb_engine cde;

	LM_NOTICE("initializing module cachedb_redis ...\n");
	memset(&cde,0,sizeof(cachedb_engine));

	cde.name = cache_mod_name;

	cde.cdb_func.init = redis_init;
	cde.cdb_func.destroy = redis_destroy;
	cde.cdb_func.get = redis_get;
	cde.cdb_func.get_counter = redis_get_counter;
	cde.cdb_func.set = redis_set;
	cde.cdb_func.remove = redis_remove;
	cde.cdb_func.add = redis_add;
	cde.cdb_func.sub = redis_sub;
	cde.cdb_func.raw_query = redis_raw_query;

	cde.cdb_func.capability = 0;

	if (register_cachedb(&cde) < 0) {
		LM_ERR("failed to initialize cachedb_redis\n");
		return -1;
	}

	return 0;
}
예제 #3
0
/**
 * init module function
 */
static int mod_init(void)
{
	cachedb_engine cde;

	LM_NOTICE("initializing module cachedb_couchbase ...\n");

	cde.name = cache_mod_name;

	cde.cdb_func.init = couchbase_init;
	cde.cdb_func.destroy = couchbase_destroy;
	cde.cdb_func.get = couchbase_get;
	cde.cdb_func.get_counter = couchbase_get_counter;
	cde.cdb_func.set = couchbase_set;
	cde.cdb_func.remove = couchbase_remove;
	cde.cdb_func.add = couchbase_add;
	cde.cdb_func.sub = couchbase_sub;

	cde.cdb_func.capability = 0;

	if (register_cachedb(&cde) < 0) {
		LM_ERR("failed to initialize cachedb_couchbase\n");
		return -1;
	}

	return 0;
}
예제 #4
0
/**
 * init module function
 */
static int mod_init(void)
{
	cachedb_engine cde;
	cachedb_con *con;
	str url=str_init("local://");
	str name=str_init("local");

	if(cache_htable_size< 1)
		cache_htable_size= 512;
	else
		cache_htable_size= 1<< cache_htable_size;

	if(lcache_htable_init(cache_htable_size) < 0)
	{
		LM_ERR("failed to initialize cache hash table\n");
		return -1;
	}

	/* register the cache system */
	cde.name = cache_mod_name;

	cde.cdb_func.init = lcache_init;
	cde.cdb_func.destroy = lcache_destroy;
	cde.cdb_func.get = lcache_htable_fetch;
	cde.cdb_func.get_counter = lcache_htable_fetch_counter;
	cde.cdb_func.set = lcache_htable_insert;
	cde.cdb_func.remove = lcache_htable_remove;
	cde.cdb_func.add = lcache_htable_add;
	cde.cdb_func.sub = lcache_htable_sub;

	cde.cdb_func.capability = CACHEDB_CAP_BINARY_VALUE;

	if(cache_clean_period <= 0 )
	{
		LM_ERR("Worng parameter cache_clean_period - need a postive value\n");
		return -1;
	}

	if( register_cachedb(&cde)< 0)
	{
		LM_ERR("failed to register to core memory store interface\n");
		return -1;
	}

	/* insert connection for script */
	con = lcache_init(&url);
	if (con == NULL) {
		LM_ERR("failed to init connection for script\n");
		return -1;
	}

	if (cachedb_put_connection(&name,con) < 0) {
		LM_ERR("failed to insert connection for script\n");
		return -1;
	}

	/* register timer to delete the expired entries */
	register_timer("localcache-expire",localcache_clean, 0,
		cache_clean_period);

	return 0;
}