亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? evafilemanager.cpp

?? eva是一個基于qt的linux下的QQ客戶端,體積小界面友好
?? CPP
字號:
/*************************************************************************** *   Copyright (C) 2005 by yunfan                                          * *   yunfan_zg@163.com                                                     * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * *   You should have received a copy of the GNU General Public License     * *   along with this program; if not, write to the                         * *   Free Software Foundation, Inc.,                                       * *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * ***************************************************************************/ #include "evafilemanager.h"#include "evafiledownloader.h"#include <qevent.h>EvaFileManager::EvaFileManager(const int myId, QObject *parent)	: QObject(parent), m_MyId(myId), m_FileAgentToken(NULL), m_IsProxySet(false){	m_ThreadList.setAutoDelete(true);}EvaFileManager::~EvaFileManager(){	stopAll();	if(m_FileAgentToken) delete []m_FileAgentToken;}void EvaFileManager::setMyBasicInfo(const unsigned char *key, const unsigned char *token, 				const unsigned int tokenLen){	if(!token) return;	if(m_FileAgentToken) delete [] m_FileAgentToken;	m_FileAgentToken = new unsigned char[tokenLen];	memcpy(m_FileAgentToken, token, tokenLen);	m_FileAgentTokenLength = tokenLen;	memcpy(m_FileAgentKey, key, 16);}void EvaFileManager::setMyProxyInfo(const QHostAddress addr, const short port, const QCString &param){	m_ProxyServer = addr;	m_ProxyPort = port;	m_ProxyAuthParam = param;	m_IsProxySet = true;}const bool EvaFileManager::newSession(const unsigned int id, const unsigned int session, 				const QValueList<QString> &dirList, 				const QValueList<QString> &filenameList,				const QValueList<unsigned int> &sizeList,				const bool isDownload, const unsigned char transferType){	if(getThread(id, session)) return false;	EvaFileThread *thread = NULL;	if(isDownload){		EvaUdpDownloader *dthread = new EvaUdpDownloader(this, id, dirList, filenameList, sizeList);		dthread->setFileAgentToken(m_FileAgentToken, m_FileAgentTokenLength);		dthread->setQQ(m_MyId);		dthread->setSession(session);		dthread->setTransferType(transferType);		thread = dthread;	} else {		EvaUdpUploader *uthread = new EvaUdpUploader(this, id, dirList, filenameList);		uthread->setFileAgentToken(m_FileAgentToken, m_FileAgentTokenLength);		uthread->setFileAgentKey(m_FileAgentKey);		uthread->setQQ(m_MyId);		uthread->setSession(session);		uthread->setTransferType(transferType);		thread = uthread;	}	if(thread) m_ThreadList.append(thread);	return true;}const bool EvaFileManager::changeToAgent(const unsigned int id, const unsigned int session){	EvaFileThread *thread = getThread(id, session);	if(!thread) return false;	thread->stop();	thread->wait();		EvaAgentThread *newThread = NULL;	EvaUdpUploader *upthread = dynamic_cast<EvaUdpUploader *>(thread);	if(upthread){		EvaAgentUploader *uthread = new EvaAgentUploader(this, 						upthread->getBuddyQQ(), 						upthread->getDirList(), 						upthread->getFileNameList());		uthread->setFileAgentToken(m_FileAgentToken, m_FileAgentTokenLength);		uthread->setFileAgentKey(m_FileAgentKey);		uthread->setQQ(m_MyId);		uthread->setSession(session);		uthread->setTransferType(upthread->getTransferType());		newThread = uthread;	}else{		EvaUdpDownloader *downthread = dynamic_cast<EvaUdpDownloader *>(thread);		if(downthread){			EvaAgentDownloader *dthread = new EvaAgentDownloader(this, 								downthread->getBuddyQQ(),								downthread->getDirList(),								downthread->getFileNameList(),								downthread->getSizeList());			dthread->setFileAgentToken(m_FileAgentToken, m_FileAgentTokenLength);			dthread->setQQ(m_MyId);			dthread->setSession(session);			dthread->setTransferType(downthread->getTransferType());			newThread = dthread;		} else 			return false;	}	m_ThreadList.removeRef(thread);	if(newThread){		if(m_IsProxySet) newThread->setProxySettings(m_ProxyServer, m_ProxyPort, m_ProxyAuthParam);		m_ThreadList.append(newThread);	}	return true;}/*const bool EvaFileManager::newSession(const int id, const QString &dir, 				const QString &file, const unsigned int session, const unsigned int size,				const bool isDirectConnection, const bool usingProxy, const bool isDownload){	if(getThread(id, session)) return false;	EvaFileThread *thread = NULL;	if(isDownload){		if(isDirectConnection){		} else {			EvaAgentDownloader *dthread = new EvaAgentDownloader(this, id, dir, file, size);			dthread->setFileAgentToken(m_FileAgentToken, m_FileAgentTokenLength);			dthread->setQQ(m_MyId);			dthread->setSession(session);			if(usingProxy){				if(!m_IsProxySet) {					delete dthread;					return false;				}				dthread->setProxySettings(m_ProxyServer, m_ProxyPort, m_ProxyAuthParam);			}			thread = dthread;		}	} else {		if(isDirectConnection){			EvaUdpUploader *uthread = new EvaUdpUploader(this, id, dir, file);			uthread->setFileAgentToken(m_FileAgentToken, m_FileAgentTokenLength);			uthread->setFileAgentKey(m_FileAgentKey);			uthread->setQQ(m_MyId);			uthread->setSession(session);			thread = uthread;		} else {			EvaAgentUploader *uthread = new EvaAgentUploader(this, id, dir, file);			uthread->setFileAgentToken(m_FileAgentToken, m_FileAgentTokenLength);			uthread->setFileAgentKey(m_FileAgentKey);			uthread->setQQ(m_MyId);			uthread->setSession(session);			if(usingProxy){				if(!m_IsProxySet) {					delete uthread;					return false;				}				uthread->setProxySettings(m_ProxyServer, m_ProxyPort, m_ProxyAuthParam);			}			thread = uthread;		}	}	if(thread) m_ThreadList.append(thread);	return true;}*/void EvaFileManager::updateIp(const unsigned int id, const unsigned int session, const unsigned int ip){	EvaAgentUploader *thread = dynamic_cast<EvaAgentUploader *>(getThread(id, session));	if(thread) thread->setBuddyIp(ip);}const bool EvaFileManager::startSession(const unsigned int id, const unsigned int session){	EvaFileThread *thread = getThread(id, session);	if(!thread){		printf("EvaFileManager::startSession -- no session to run, return now.\n");		return false;	}	if(thread->running()){		printf("EvaFileManager::startSession -- session already running, return now.\n");		return false;	}	thread->start();	return true;}const QString EvaFileManager::getFileName(const unsigned int id, const unsigned int session, const bool isAbs){	EvaFileThread *thread = getThread(id, session);	if(!thread) return "";	QString file = "";	if(isAbs) file = thread->getDir() + "/";	file += thread->getFileName();	return file;}const unsigned int EvaFileManager::getFileSize(const unsigned int id, const unsigned int session){	EvaFileThread *thread = getThread(id, session);	if(!thread) return 0;	return thread->getFileSize();}const unsigned char EvaFileManager::getTransferType(const unsigned int id, const unsigned int session){	EvaFileThread *thread = getThread(id, session);	if(!thread) return 0;	return thread->getTransferType();}/*void EvaFileManager::newReceiveThread(){}*/void EvaFileManager::stopThread(const unsigned int id, const unsigned int session){	EvaFileThread * thread = getThread(id, session);	if(!thread) return;	thread->stop();	thread->wait();	m_ThreadList.removeRef(thread);}void EvaFileManager::stopAll(){	EvaFileThread *thread;	for(thread = m_ThreadList.first(); thread; thread = m_ThreadList.next()){		thread->stop();		thread->wait();	}	m_ThreadList.clear();}void EvaFileManager::customEvent(QCustomEvent *e){	printf("EvaFileManager::customEvent \n");	switch(e->type()){	case Eva_FileNotifyAgentEvent:{		EvaFileNotifyAgentEvent *ae = (EvaFileNotifyAgentEvent *)e;		emit notifyAgentRequest(ae->getBuddyQQ(), ae->getOldSession(), ae->getAgentSession(),					ae->getAgentIp(), ae->getAgentPort(), ae->getTransferType());		}		break;	case Eva_FileNotifyStatusEvent:{		EvaFileNotifyStatusEvent *se = (EvaFileNotifyStatusEvent *)e;		emit notifyTransferStatus(se->getBuddyQQ(), se->getSession(),				se->getFileSize(), se->getBytesSent(), se->getTimeElapsed());		}		break;	case Eva_FileNotifySessionEvent:{		EvaFileNotifySessionEvent *se = (EvaFileNotifySessionEvent *)e;		emit notifyTransferSessionChanged(se->getBuddyQQ(), se->getOldSession(), se->getNewSession());		}		break;	case Eva_FileNotifyNormalEvent:{		EvaFileNotifyNormalEvent *ne = (EvaFileNotifyNormalEvent *)e;		emit notifyTransferNormalInfo(ne->getBuddyQQ(), ne->getSession(), ne->getStatus(),					ne->getDir(), ne->getFileName(), ne->getFileSize(), ne->getTransferType());		}		break;	case Eva_FileNotifyAddressEvent:{		printf("EvaFileManager::customEvent -- Eva_FileNotifyAddressEvent Got!");		EvaFileNotifyAddressEvent *ae = (EvaFileNotifyAddressEvent *)e;		emit notifyAddressRequest(ae->getBuddyQQ(), ae->getSession(), ae->getSynSession(), 			ae->getIp(), ae->getPort(), ae->getMyIp(), ae->getMyPort());		}		break;	default:		break;	}}EvaFileThread * EvaFileManager::getThread(const unsigned int id, const unsigned int session){	EvaFileThread * thread;	for(thread = m_ThreadList.first(); thread; thread = m_ThreadList.next()){		if( (thread->getBuddyQQ() == id) && (thread->getSession() == session) ){			return thread;		}	}	printf("EvaFileManager::getThread -- cannot find thread: %d\n", session);	return NULL;	}void EvaFileManager::changeSessionTo(const unsigned int id, const unsigned int oldSession,				const unsigned int newSession ){	EvaFileThread *thread = getThread(id, oldSession);	if(!thread)	return;	thread->setSession(newSession);}void EvaFileManager::setBuddyAgentKey(const unsigned int id, const unsigned int session, const unsigned char *key){	EvaAgentThread *thread = dynamic_cast<EvaAgentThread *>(getThread(id, session));	if(thread) thread->setFileAgentKey(key);}void EvaFileManager::saveFileTo(const unsigned int id, const unsigned int session, const QString dir){	EvaFileThread *thread = getThread(id, session);	if(!thread) return;	if(thread->running()) return;	thread->setDir(dir);}void EvaFileManager::setAgentServer(const unsigned int id, const unsigned int session, 					const unsigned int ip, const unsigned short port){	EvaAgentThread *thread = dynamic_cast<EvaAgentThread *>(getThread(id, session));	if(thread) thread->setServerAddress(ip, port);}void EvaFileManager::slotFileTransferResume( const unsigned int id, const unsigned int session, const bool isResume ){	EvaAgentDownloader *thread = dynamic_cast<EvaAgentDownloader *>(getThread(id, session));	if(thread) thread->askResumeLastDownload(isResume);}const bool EvaFileManager::isSender(const unsigned int id, const unsigned int session, bool *isExisted){	EvaFileThread *thread = getThread(id, session);	if(!thread){		*isExisted = false;		return false;	}	*isExisted = true;	return thread->isSender();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲最大的成人av| 91网页版在线| 91猫先生在线| 欧美mv日韩mv国产网站| 亚洲猫色日本管| 国产在线麻豆精品观看| 欧美日韩精品二区第二页| 久久夜色精品国产噜噜av| 亚洲国产成人高清精品| 成人激情校园春色| 精品国产一区二区三区av性色| 亚洲人成网站影音先锋播放| 国产一区欧美二区| 日韩欧美在线影院| 亚洲风情在线资源站| 99久久er热在这里只有精品15 | 日韩亚洲欧美在线| 亚洲老司机在线| 暴力调教一区二区三区| 欧美成人高清电影在线| 日韩精品高清不卡| 欧美色国产精品| 亚洲成在人线免费| 在线免费观看视频一区| 亚洲三级视频在线观看| 97se狠狠狠综合亚洲狠狠| 欧美国产精品专区| 国产91综合网| 国产亚洲一本大道中文在线| 国产在线国偷精品产拍免费yy| 日韩一区二区精品葵司在线| 日韩成人伦理电影在线观看| 欧美日韩精品福利| 五月天欧美精品| 91精品国产乱| 免费日韩伦理电影| 日韩美女视频一区二区在线观看| 日韩av中文在线观看| 3751色影院一区二区三区| 日韩电影免费一区| 日韩午夜在线观看视频| 精品一区二区免费看| 欧美精品一区二区三区视频| 国产精品88av| 国产精品美女久久久久久久网站| 国产91精品一区二区麻豆网站| 国产欧美一区二区三区网站| 岛国精品一区二区| 亚洲精品成人在线| 欧美日韩一区中文字幕| 蜜桃在线一区二区三区| 久久一区二区三区四区| caoporm超碰国产精品| 一区二区三区免费| 欧美日韩高清一区二区不卡 | 国产精品国产三级国产aⅴ无密码| 国产成人综合视频| **网站欧美大片在线观看| 色噜噜久久综合| 日本aⅴ精品一区二区三区| 精品日韩在线观看| 国产成人超碰人人澡人人澡| 亚洲天堂2016| 欧美一级视频精品观看| 国产精品亚洲专一区二区三区| 国产精品久久久久一区二区三区 | 国产91丝袜在线18| 亚洲综合另类小说| www国产精品av| 色av一区二区| 国模娜娜一区二区三区| 亚洲精品国产成人久久av盗摄| 91精品国产色综合久久不卡蜜臀 | 91精品久久久久久久久99蜜臂| 国精品**一区二区三区在线蜜桃| 国产精品欧美极品| 91精品欧美综合在线观看最新| 高清在线成人网| 视频在线观看91| 国产精品久久久久aaaa樱花| 欧美一级欧美三级| 一本大道久久a久久精二百| 九九视频精品免费| 一区二区高清免费观看影视大全| 精品欧美久久久| 欧美专区日韩专区| 国产69精品久久99不卡| 强制捆绑调教一区二区| 亚洲欧美日韩国产另类专区| ww久久中文字幕| 91精品国产色综合久久久蜜香臀| 在线不卡中文字幕| 成人av资源站| 国产福利一区二区三区视频在线 | 国产精品成人免费在线| 精品国产免费人成在线观看| 欧美艳星brazzers| av不卡免费电影| 国产成人精品免费| 久久er99精品| 日本sm残虐另类| 亚洲成人久久影院| 一区二区三区在线播放| 国产精品另类一区| 国产亚洲欧美色| 欧美成人三级电影在线| 91精品久久久久久久99蜜桃| 在线观看国产精品网站| 91视视频在线观看入口直接观看www| 国产一区二区三区四区在线观看| 日本不卡视频在线| 日韩av一区二| 日日夜夜精品视频免费| 亚洲一区二区在线免费看| 亚洲三级免费观看| 亚洲精品中文在线观看| 亚洲乱码中文字幕综合| 亚洲人成网站在线| 亚洲精品日韩一| 一区二区久久久久久| 亚洲女同一区二区| 一区二区三区四区在线| 亚洲精品免费在线| 亚洲伊人伊色伊影伊综合网| 一区二区三区欧美| 午夜视频在线观看一区二区三区| 亚洲一区在线观看免费 | 国产精品亲子伦对白| 国产精品免费视频网站| 亚洲欧洲成人自拍| 一区二区久久久久| 婷婷激情综合网| 一本久久a久久精品亚洲| 99久久99久久精品免费观看| 色综合天天在线| 欧美久久一区二区| 欧美成人精品1314www| 国产欧美精品一区aⅴ影院| 国产精品久久久久9999吃药| 亚洲国产日日夜夜| 久久国产精品72免费观看| 国产乱码精品一品二品| 99久久er热在这里只有精品66| 欧美无砖砖区免费| 久久夜色精品国产噜噜av| 日韩码欧中文字| 婷婷开心久久网| 国产麻豆成人传媒免费观看| 色综合网站在线| 日韩女优制服丝袜电影| 国产精品久久久久久久久晋中| 亚洲午夜视频在线| 国产精品99久久久久久久vr | 五月婷婷欧美视频| 热久久国产精品| 成人av电影免费在线播放| 欧美日韩精品一区二区天天拍小说| 精品区一区二区| 亚洲日本乱码在线观看| 狠狠网亚洲精品| 色噜噜狠狠成人网p站| 日韩三级伦理片妻子的秘密按摩| 国产精品久久久久久亚洲毛片| 午夜影院久久久| 99久精品国产| 2021国产精品久久精品| 亚洲高清免费一级二级三级| 国产成人自拍网| 日韩一区二区麻豆国产| 一级精品视频在线观看宜春院| 黑人精品欧美一区二区蜜桃| 在线观看一区日韩| 国产欧美日韩在线看| 蜜桃久久精品一区二区| 欧美午夜影院一区| 中文字幕制服丝袜一区二区三区| 蜜桃视频在线观看一区二区| 色婷婷国产精品综合在线观看| 国产亚洲午夜高清国产拍精品| 日韩电影免费在线| 欧美揉bbbbb揉bbbbb| 中文字幕一区视频| 国产精品一卡二| 精品国产91乱码一区二区三区| 亚洲444eee在线观看| 91免费精品国自产拍在线不卡| 欧美激情一区二区三区蜜桃视频 | 亚洲精品第一国产综合野| 国产精品一区二区三区四区| 日韩一区二区三区av| 亚洲国产aⅴ成人精品无吗| 色综合久久天天| 中文字幕在线不卡一区二区三区| 国产精品一级片在线观看| 欧美tickle裸体挠脚心vk| 成人av网站免费| 欧美国产国产综合| 成人av资源站| 中文字幕在线不卡国产视频| 成人涩涩免费视频|