Ejemplo n.º 1
0
lib_t *lib_create(const char *dbfile, const char *libdir)
	{
	lib_t *lib=malloc(sizeof(lib_t));
	if(!lib)
		return NULL;
	lib->watch=watch_create(lib);
	if(!lib->watch)
		{
		error(ll, "failed to create watcher.");
		goto err;
		}
	lib->watch->event=lib_watch_event;

	empty=string_create_unique("");
	ll=get_logger("lib");
	lib->entries=chunked_list_create(512, sizeof(lib_entry), &lib_entry_destructor);
	if(!lib->entries)
		{
		error(ll, "failed to allocate lib.");
		goto err;
		}

	int s=strlen(libdir);
	if(libdir[s-1]!='/')
		{
		char *tmp=malloc(s+2);
		strcpy(tmp, libdir);
		tmp[s++]='/'; tmp[s]=0;
		libdir=tmp;
		}
	else
		libdir=strdup(libdir);
	lib->base_path=libdir;
	lib->base_path_size=s;
	filecount=0;

	
	lib->dbfile=strdup(dbfile);
	lib_read(lib);
//	pthread_create(&lib->check_thread, NULL, check_lib, lib);
//	pthread_join(lib->check_thread, NULL);
	check_lib(lib);

	return lib;

err:
	if(lib)
		{
		if(lib->entries)
			chunked_list_destroy(lib->entries);
		if(lib->watch)
			watch_destroy(lib->watch);
		free(lib);
		}
	return NULL;
	}
Ejemplo n.º 2
0
int main(int argc, char *argv[])
{
	filedb_top(".");
	make_init();
	context* ctx = make_context();
	assert(lib_read(argv[1],strlen(argv[1]),ctx));
	VipsImage* image = lib_thumbnail(ctx);
	lib_write(image,argv[2],1,ctx);
	return 0;
}