Exemple #1
0
void searchThread::search(QString mydir)
{
	QDir dir = QDir(mydir);
	QStringList files = dir.entryList(
		QStringList(ext),
		QDir::Files | QDir::Readable);

	while (!files.isEmpty() && keepOnRunning) {
		QString file = files.takeFirst();
		if (file.isEmpty())
			continue;
		file = mydir + QDir::separator() + file;
		emit updateCurrFile(file);
		if (checkLib(file))
			emit updateLibs(file);
	}
	if (recursive && keepOnRunning) {
		QString d;
		QStringList dirs = dir.entryList(QStringList(),
		QDir::AllDirs | QDir::NoDotAndDotDot);

		foreach(d, dirs) {
			if (!keepOnRunning)
				break;
			QString s = mydir +QDir::separator() +d;
			emit updateCurrFile(s);
			search(s);
		}
	}
Exemple #2
0
void loadService(const char * path)
{
	if(path==NULL || strlen(path)==0)
	{
		logN(TAG ,LOG_LEVEL_WARNING," path is empty");
		return;
	}

	logI(TAG," prepare to load service from library:%s",path);
	
	void * dlHandler=NULL;
	char * errmsg;
#ifdef LINUX
	dlHandler=dlopen(path,RTLD_NOW);
	if(dlHandler==NULL)
	{
		errmsg=dlerror();
		logN("SERVICE",LOG_LEVEL_WARNING," can not open library:%s %s",path,errmsg);
		return;
	}
#elif WIN32
#endif
	
	struct TGService * pService=NULL;
	if(checkLib(dlHandler,&pService)==0)
	{
		logD(TAG,"check lib successfully");
		//FIXME use system seportor
		char * pLibName=NULL;
		getLibName(path,&pLibName);
		if(pLibName==NULL)
		{
			pLibName=(char *)malloc(sizeof(5));	
			memset(pLibName,0,10);
			sprintf(pLibName,"%d",pService->sID);
		}
		
		pService->serviceName=pLibName;
		addService(pService);
	}
	else
	{
		logW(TAG,"check library error");
	}

}