fep1.0发送端
2021-09-14 10:42:56 0 举报
fep1.0发送端
作者其他创作
大纲/内容
根据列表参数创建实时转发任务,并通过TaskManager::instance()->addTask(pTaskItem);添加到任务队列,作为初始化TaskStarter的参数
生成建链申请
新建实时转发任务,关联按钮的点击事件到槽函数,获取发送以及接收参数
FepImpl::SetUpFepConn()
TaskActuator::startTask(CTaskItem* p)
开启接收线程p->startRecv()和发送线程p->startSend() 此流程着重发送流程
开始发送数据文件,dptr()->bSendContinued || obj.hasFile()判断是否有文件待发送,impl->setSendInfo(item.data())传递发送状态信息,接下来发送文件的流程和发送建链申请的流程相同,不重复
发送传输完成报告,流程与建链申请报告一样
通过_d->pthread->start()开启发送线程
fep1.0发送端(实时转发任务)
CDataSend::setStatus(TASK_STATUS status)
TaskStarter::taskStartHandler()
发送建链申请,调用init()初始化传输参数
FepImpl::DestoryFepConn()
任务取消,传输完毕,注意fep实时转发的取消任务会等写入所有文件发送完成之后才会停止任务
CDataSendThread::sendApplication()
发送传输质量报告,流程与建链申请报告一样
TaskActuator::realTimeTaskStartHandler(CTaskItem* p)
CDataSendThread::sendDataFile()
建立fep连接,通过发送连接请求包SendRequest(packet)和接收请求应答包RecvAckRequest()判断包类型继续发送文件
CDataSendThread::run()
销毁fep连接
打开文件,每次读取fep包的大小,调用SendDataPack(dataPack)进行发送
CAddRecvTransTask::slotCreateTask()
CFepTransfer::send(const QString &filename)
FepImpl::SendFileData()
CDataSendThread::sendQuality()
通过setUp()初始化Tcp连接
判断任务队列是否有任务没执行以及该任务创建的通道是否有任务执行,然后根据任务类型(单接收、实时转发、事后转发)执行
CDataSendThread::sendCompletion()
准备建链申请
解析申请回执内容,此回执xml通过单独线程FepTcpServer接收
CAnaApplyCompXml::AnaXmlApplicationReceipt(QString m_qstrXmlAppRtFileName)
FepImpl::SendFile(QString filename)
0 条评论
回复 删除
下一页