From 9e2355e2d527430807c9c12381446fbc871ebadc Mon Sep 17 00:00:00 2001 From: seiyu Date: Tue, 2 Jan 2024 17:27:05 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=AE=E5=89=8D=E6=95=B0=E6=8D=AE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=9F=BA=E6=9C=AC=E5=AE=8C=E6=88=90=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0=E4=BA=86QtFtp=EF=BC=8C=E4=BD=86?= =?UTF-8?q?=E7=9B=AE=E5=89=8D=E6=97=A0=E6=B3=95=E6=AD=A3=E5=B8=B8=E8=BF=90?= =?UTF-8?q?=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cigarette/Cigarette.vcxproj | 4 +- Cigarette/Cigarette.vcxproj.filters | 3 + Cigarette/FtpManager.h | 2 +- Cigarette/basecamera.h | 2 +- Cigarette/cigarette.cpp | 166 +- Cigarette/cigarette.h | 1 + Cigarette/common.h | 5 +- Cigarette/exportData.cpp | 96 +- Cigarette/exportData.h | 7 +- QtFtp/Qt5Ftp.dll | Bin 0 -> 763392 bytes QtFtp/Qt5Ftp.lib | Bin 0 -> 690848 bytes QtFtp/Qt5Ftp.prl | 7 + QtFtp/qftp.cpp | 2403 +++++++++++++++++++++++++++ QtFtp/qftp.h | 162 ++ QtFtp/qurlinfo.cpp | 728 ++++++++ QtFtp/qurlinfo.h | 121 ++ 16 files changed, 3598 insertions(+), 109 deletions(-) create mode 100644 QtFtp/Qt5Ftp.dll create mode 100644 QtFtp/Qt5Ftp.lib create mode 100644 QtFtp/Qt5Ftp.prl create mode 100644 QtFtp/qftp.cpp create mode 100644 QtFtp/qftp.h create mode 100644 QtFtp/qurlinfo.cpp create mode 100644 QtFtp/qurlinfo.h diff --git a/Cigarette/Cigarette.vcxproj b/Cigarette/Cigarette.vcxproj index b4f501d..a39b38f 100644 --- a/Cigarette/Cigarette.vcxproj +++ b/Cigarette/Cigarette.vcxproj @@ -127,7 +127,7 @@ UNICODE;_UNICODE;WIN32;WIN64;QT_NO_DEBUG;NDEBUG;QT_CORE_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;NOMINMAX;QT_NETWORK_LIB;WIN32_LEAN_AND_MEAN;%(PreprocessorDefinitions) - .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(ProjectDir)MvIMPACT;$(ProjectDir)OpenCV455Simple\include;$(ProjectDir)Common;$(ProjectDir)Pylon6.2\include;$(ProjectDir)modbus;$(ProjectDir)MVS3.2.1\Include;$(ProjectDir)PLC;$(QTDIR)\include\QtNetwork;%(AdditionalIncludeDirectories) + $(QTDIR)\include\QtFtp;.\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtWidgets;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtANGLE;$(ProjectDir)MvIMPACT;$(ProjectDir)OpenCV455Simple\include;$(ProjectDir)Common;$(ProjectDir)Pylon6.2\include;$(ProjectDir)modbus;$(ProjectDir)MVS3.2.1\Include;$(ProjectDir)PLC;$(QTDIR)\include\QtNetwork;%(AdditionalIncludeDirectories) ProgramDatabase MultiThreaded true @@ -142,7 +142,7 @@ $(OutDir)\$(ProjectName).exe $(QTDIR)\lib;$(ProjectDir)OpenCV455Simple\win64\vc15\lib;$(ProjectDir)Pylon6.2\lib\Win64;$(ProjectDir)MvIMPACT\lib\win64;$(ProjectDir)MVS3.2.1\lib\win64;$(ProjectDir)modbus;%(AdditionalLibraryDirectories) false - qtmain.lib;Qt5Core.lib;Qt5Widgets.lib;Qt5Gui.lib;opencv_world455.lib;modbus.lib;mvDeviceManager.lib;MvCameraControl.lib;Qt5Network.lib;%(AdditionalDependencies) + qtmain.lib;Qt5Core.lib;Qt5Widgets.lib;Qt5Gui.lib;opencv_world455.lib;modbus.lib;mvDeviceManager.lib;MvCameraControl.lib;Qt5Network.lib;Qt5Ftp.lib;%(AdditionalDependencies) diff --git a/Cigarette/Cigarette.vcxproj.filters b/Cigarette/Cigarette.vcxproj.filters index 3cc8ba2..833d2c3 100644 --- a/Cigarette/Cigarette.vcxproj.filters +++ b/Cigarette/Cigarette.vcxproj.filters @@ -417,5 +417,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/Cigarette/FtpManager.h b/Cigarette/FtpManager.h index fa1ccd0..16c1637 100644 --- a/Cigarette/FtpManager.h +++ b/Cigarette/FtpManager.h @@ -45,6 +45,7 @@ public: // ¶ÁÈ¡±¾µØÎļþÊý¾Ý QByteArray data = file.readAll(); file.close(); + // ÉÏ´«Êý¾Ý£¬ÉÏ´«³É¹¦ºó»áÔÚÔ¶¶Ë´´½¨Îļþ manager.setNetworkAccessible(QNetworkAccessManager::Accessible); QNetworkReply* reply = manager.put(QNetworkRequest(url), data); @@ -71,5 +72,4 @@ public: }); } } - }; \ No newline at end of file diff --git a/Cigarette/basecamera.h b/Cigarette/basecamera.h index ec35673..df90994 100644 --- a/Cigarette/basecamera.h +++ b/Cigarette/basecamera.h @@ -2,7 +2,7 @@ #include -#define NumberOfSupportedCameras 2 +#define NumberOfSupportedCameras 8 #define EdgeEvent 1 #define ImageCap 2 diff --git a/Cigarette/cigarette.cpp b/Cigarette/cigarette.cpp index 6112ade..32b99e5 100644 --- a/Cigarette/cigarette.cpp +++ b/Cigarette/cigarette.cpp @@ -290,7 +290,7 @@ Cigarette::Cigarette(QWidget *parent) } std::cout << " Enumerate Cameras..."<< std::endl; - EnumerateCameras((SingleCamInfoStruct*)&SingleCamInfo,true,g_sys_conf); + EnumerateCameras((SingleCamInfoStruct*)&SingleCamInfo, true, g_sys_conf); // ÌÞ³ýÖµÇå0 @@ -1255,6 +1255,7 @@ void Cigarette::OnDisplayCheckNumberHub(int Num, long no) { production_number[Num]++; lcdNumber_total_mat[Num]->display(production_number[Num]); + exportData[Num].checkNum = production_number[Num]; _UDPSendInfo UDPSendInfo; UDPSendInfo.FrameID = total_frame; UDPSendInfo.index = Num; @@ -1894,13 +1895,97 @@ void Cigarette::on_pushButton_clear_released()// QMessageBox::information(NULL, QStringLiteral("״̬¼ì²é"), QStringLiteral("ÇëÏȵã»÷¡°Í£Ö¹¹¤×÷¡±°´Å¥£¬²Å¿ÉÒÔ½øÐл»°à²Ù×÷ "), QMessageBox::Ok); return; } + + //ͨ¹ýPLC¶ÁÈ¡µ±°à²úÁ¿£¬ÏÔʾÔÚÉÏ°à²úÁ¿ÖÐ + if (m_PLCDevice->g_plc_ok) + { + if (!g_plc_dialog_open) //PLCÅäÖöԻ°¿òûÓдò¿ª + { + if (g_modbus_conf.quantity > 0) + { + uint16_t dest16[2]; + int ret = m_PLCDevice->read_short_from_plc( g_modbus_conf.quantity, 2, dest16); + //std::cout << ret << std::endl; + if (ret > 0) + { + int cur_quantity = dest16[0] + (dest16[1] << 16); + ui.lcdNumber_total_no_last->display(cur_quantity); +#ifdef __ExportData + exportData->totalCheckNum = cur_quantity; +#endif +#ifdef __UDPSend + sThread.sendData("totallast_" + QString::number(cur_quantity), g_sys_conf.FeedbackPort); +#endif + } + } + +#ifdef __ExportData + for (int i = 0; i < NumberOfSupportedCameras; i++) { + _XMLExportDataInfo exportXMLDataInfo; + exportXMLDataInfo.cameraTotal = NumberOfSupportedCameras; + exportXMLDataInfo.cameraId = exportData[i].cameraId; + exportXMLDataInfo.TotalCheckNum = exportData->totalCheckNum; + exportXMLDataInfo.shotCounts = g_sys_conf.shoot[i]; + exportXMLDataInfo.DetectSpeed = exportData[i].detectTime; + exportXMLDataInfo.AcquisitionSpeed = exportData[i].acquisitionTime; + exportXMLDataInfo.checkNum = exportData[i].checkNum; + exportXMLDataInfo.jdNum = exportData[i].jdNum; + exportXMLDataInfo.okNum = exportData[i].okNum; + exportXMLDataInfo.ngNum = exportData[i].ngNum; + exportXMLDataInfo.kickNum = exportData[i].kick; + if (exportXMLDataInfo.kickNum == 0) + exportXMLDataInfo.KickRate = 0; + else + exportXMLDataInfo.KickRate = (double)exportXMLDataInfo.kickNum / exportXMLDataInfo.checkNum; + double ng_rate; + if (exportData[i].ngNum > 0) + ng_rate = double(exportData[i].ngNum) / exportData[i].checkNum; + else + ng_rate = 0; + exportXMLDataInfo.PassRate = 1.0 - ng_rate; + + int flag = 0; + for (int i = 1; i < NumberOfSupportedCameras; i++) { + if (exportData[i].kick != exportData[0].kick) { + flag = 1; + break; + } + } + if (flag == 1) { + // KickÖµ²»Ò»Ö + for (int i = 0; i < NumberOfSupportedCameras; i++) { + exportXMLDataInfo.TotalKickNum += exportData[i].kick; + } + } + else + exportXMLDataInfo.TotalKickNum = exportData[0].kick; + + export_XMLData_Info_queue->put(exportXMLDataInfo); + } + flag = false; +#endif + + //·¢ËÍ»»°àÏûÏ¢¸øPLC + if (g_modbus_conf.shift > 0) + { + int ret = m_PLCDevice->write_bit_2_plc( g_modbus_conf.shift, 1); + if (g_modbus_conf.alarm >0)///¸ø±¨¾¯µØÖ·£¨alarm¶ÔÓ¦µÄPLCµØÖ·£©ÇåÁã + { + uint16_t dest16[2] = { 0,0 }; + int ret = m_PLCDevice->write_short_2_plc(g_modbus_conf.alarm, 2, dest16); + } + } + } + } + g_op_time = OP_TIME; + ui.pushButton_clear->setEnabled(false); m_delay->setSingleShot(true); m_delay->start(5000); Sleep(500); - for(int i=0;idisplay(production_number[i]); ok[i] = 0; lcdNumber_ok_mat[i]->display(ok[i]); @@ -1937,81 +2022,6 @@ void Cigarette::on_pushButton_clear_released()// sThread.sendData("total_" + QString::number(0), g_sys_conf.FeedbackPort); #endif - - //ͨ¹ýPLC¶ÁÈ¡µ±°à²úÁ¿£¬ÏÔʾÔÚÉÏ°à²úÁ¿ÖÐ - if (m_PLCDevice->g_plc_ok) - { - if (!g_plc_dialog_open) //PLCÅäÖöԻ°¿òûÓдò¿ª - { - if (g_modbus_conf.quantity > 0) - { - uint16_t dest16[2]; - int ret = m_PLCDevice->read_short_from_plc( g_modbus_conf.quantity, 2, dest16); - //std::cout << ret << std::endl; - if (ret > 0) - { - int cur_quantity = dest16[0] + (dest16[1] << 16); - ui.lcdNumber_total_no_last->display(cur_quantity); -#ifdef __ExportData - exportData->totalCheckNum = cur_quantity; -#endif -#ifdef __UDPSend - sThread.sendData("totallast_" + QString::number(cur_quantity), g_sys_conf.FeedbackPort); -#endif - } - } - //·¢ËÍ»»°àÏûÏ¢¸øPLC - if (g_modbus_conf.shift > 0) - { - int ret = m_PLCDevice->write_bit_2_plc( g_modbus_conf.shift, 1); - if (g_modbus_conf.alarm >0)///¸ø±¨¾¯µØÖ·£¨alarm¶ÔÓ¦µÄPLCµØÖ·£©ÇåÁã - { - uint16_t dest16[2] = { 0,0 }; - int ret = m_PLCDevice->write_short_2_plc(g_modbus_conf.alarm, 2, dest16); - } - } - } - } - g_op_time = OP_TIME; - -#ifdef __ExportData - for (int i = 0; i < NumberOfSupportedCameras; i++) { - _XMLExportDataInfo exportXMLDataInfo; - exportXMLDataInfo.cameraTotal = NumberOfSupportedCameras; - exportXMLDataInfo.cameraId = exportData[i].cameraId; - exportXMLDataInfo.TotalCheckNum = exportData[i].totalCheckNum; - exportXMLDataInfo.shotCounts = g_sys_conf.shoot[i]; - exportXMLDataInfo.DetectSpeed = exportData[i].detectTime; - exportXMLDataInfo.AcquisitionSpeed = exportData[i].acquisitionTime; - exportXMLDataInfo.jdNum = exportData[i].jdNum; - exportXMLDataInfo.okNum = exportData[i].okNum; - exportXMLDataInfo.ngNum = exportData[i].ngNum; - exportXMLDataInfo.kickNum= exportData[i].kick; - int flag = 0; - for (int i = 1; i < NumberOfSupportedCameras; i++) { - if (exportData[i].kick != exportData[0].kick) { - flag = 1; - break; - } - } - if (flag == 1) { - // KickÖµ²»Ò»Ö - for (int i = 0; i < NumberOfSupportedCameras; i++) { - exportXMLDataInfo.TotalKickNum += exportData[i].kick; - } - } - else - exportXMLDataInfo.TotalKickNum = exportData[0].kick; - if (exportXMLDataInfo.TotalKickNum == 0) - exportXMLDataInfo.KickRate = 0; - else - exportXMLDataInfo.KickRate = (double)exportXMLDataInfo.TotalKickNum / exportXMLDataInfo.TotalCheckNum; - exportXMLDataInfo.PassRate = 1.0 - exportXMLDataInfo.KickRate; - - export_XMLData_Info_queue->put(exportXMLDataInfo); - } - flag = false; -#endif } //¶Áȡϵͳ¹ÜÀíÔ±ÃÜÂë diff --git a/Cigarette/cigarette.h b/Cigarette/cigarette.h index 822e94d..cb6eb8f 100644 --- a/Cigarette/cigarette.h +++ b/Cigarette/cigarette.h @@ -167,6 +167,7 @@ public: int totalCheckNum = 0; int totalKickNum = 0; int kick = 0; + int checkNum = 0; QString detectTime = "0"; QString acquisitionTime = "0"; QString jdNum = QString("0,0,0"); diff --git a/Cigarette/common.h b/Cigarette/common.h index b180691..f757298 100644 --- a/Cigarette/common.h +++ b/Cigarette/common.h @@ -10,8 +10,8 @@ #define __UDPSend //ÍøÂç·¢Ë͹¦ÄÜ #define USB_BASLER_NEW_FW //ʹÓÃbasler¶¨Öƹ̼þ //#define IMM_PROCESS //ÅÄÕÕºóÁ¢Âí´¦Àí£¬²»µÈУÑéÐźŠ-#define IMM_FEED_BACK //´¦ÀíÍêºóÁ¢Âí·´À¡£¬²»µÈУÑéÐźŠ-//#define ONE_TIME_SHIFT //´í¿ªÒ»ÅÄ·¢ËÍ·´À¡(ĬÈÏ´í¿ªÁ½´Î) +//#define IMM_FEED_BACK //´¦ÀíÍêºóÁ¢Âí·´À¡£¬²»µÈУÑéÐźŠ+#define ONE_TIME_SHIFT //´í¿ªÒ»ÅÄ·¢ËÍ·´À¡(ĬÈÏ´í¿ªÁ½´Î) #define AI_WARM_UP //AIʶ±ð¿ªÊ¼Ç°µÄÈÈÉí¶¯×÷ #define LICENSE_VERIFY //¿ªÆôlicenseÎļþУÑé //CAP_FEED_BACKºÍDOUBLE_FEED_BACK²»ÒªÒ»Æ𿪠@@ -155,7 +155,6 @@ class ModbusConf { public: int kick[NumberOfSupportedCameras]; - int quantity; //µ±°à²úÁ¿µØÖ· int shift; //»»°àµØÖ· int work; //¿ªÊ¼/Í£Ö¹ diff --git a/Cigarette/exportData.cpp b/Cigarette/exportData.cpp index a443907..e46d90a 100644 --- a/Cigarette/exportData.cpp +++ b/Cigarette/exportData.cpp @@ -2,14 +2,14 @@ #include "QtCore\qfile.h" #include "QtCore\qtextstream.h" #include -#include +//#include Cigarette* cg; //extern SyncQueue<_ExportDataInfo>* export_Data_Info_queue; extern SyncQueue<_XMLExportDataInfo>* export_XMLData_Info_queue; extern ConfPath g_conf_path; extern bool flag; -extern FtpManager ftpManager; +//extern FtpManager ftpManager; ExportDataThread::ExportDataThread(QObject* parent) : QThread(parent) { @@ -22,14 +22,21 @@ ExportDataThread::ExportDataThread(QObject* parent) : QThread(parent) QString filePath = g_conf_path.config_path + "/" + xmlPath; error = pDocument[index]->LoadFile(filePath.toLocal8Bit().constData()); - if (error != XML_SUCCESS) - { + if (error != XML_SUCCESS) { XMLDeclaration* declaration = pDocument[index]->NewDeclaration(); pDocument[index]->InsertFirstChild(declaration); - XMLElement* root = pDocument[0]->NewElement("Root"); - pDocument[0]->InsertEndChild(root); - pDocument[index]->SaveFile(filePath.toLocal8Bit().constData()); } + + //if (error != XML_SUCCESS) + //{ + // XMLDeclaration* declaration = pDocument[index]->NewDeclaration(); + // pDocument[index]->InsertFirstChild(declaration); + // + // XMLElement* root = pDocument[0]->NewElement("Root"); + // pDocument[0]->InsertEndChild(root); + // pDocument[index]->SaveFile(filePath.toLocal8Bit().constData()); + //} + /* _ExportDataInfo data; data.cameraId = index; @@ -76,6 +83,7 @@ void ExportDataThread::stop() //export_Data_Info_queue->put(data); _XMLExportDataInfo data; export_XMLData_Info_queue->put(data); + ftp.disconnect(); } bool _ExportDataInfo::getAverageData(map &averageData, int index) @@ -173,11 +181,17 @@ int ExportDataThread::insertXMLNode(const char* xmlPath, _XMLExportDataInfo& dat root = pDocument[data.cameraId]->NewElement("Root"); pDocument[data.cameraId]->InsertEndChild(root); pDocument[data.cameraId]->SaveFile(xmlPath); + //return 0; } /// ×Üͳ¼ÆÊý¾Ý // ×ܼì²âÊýÁ¿ - XMLElement* Total= pDocument[data.cameraId]->NewElement("Total Datas"); + XMLElement* Total= pDocument[data.cameraId]->NewElement("TotalDatas"); + + XMLElement* time = pDocument[data.cameraId]->NewElement("CurrentTime"); + QString currentTime = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); + time->InsertEndChild(pDocument[data.cameraId]->NewText(currentTime.toStdString().c_str())); + Total->InsertEndChild(time); XMLElement* TotalCheckNum = pDocument[data.cameraId]->NewElement("TotalCheckNum"); char s[20]; @@ -189,20 +203,6 @@ int ExportDataThread::insertXMLNode(const char* xmlPath, _XMLExportDataInfo& dat TotalKickNum->InsertEndChild(pDocument[data.cameraId]->NewText(itoa(data.TotalKickNum, s, 10))); Total->InsertEndChild(TotalKickNum); - // ºÏ¸ñÂÊ - XMLElement* PassRate = pDocument[data.cameraId]->NewElement("PassRate"); - std::string temp_str = std::to_string(data.PassRate * 100); - const char* temp_char = temp_str.c_str(); - PassRate->InsertEndChild(pDocument[data.cameraId]->NewText(temp_char)); - Total->InsertEndChild(PassRate); - - // ÌÞ³ýÂÊ - XMLElement* KickRate = pDocument[data.cameraId]->NewElement("KickRate"); - temp_str = std::to_string(data.KickRate * 100); - temp_char = temp_str.c_str(); - KickRate->InsertEndChild(pDocument[data.cameraId]->NewText(temp_char)); - Total->InsertEndChild(KickRate); - root->InsertEndChild(Total); /// ¸÷Ïà»úÊý¾Ý @@ -212,6 +212,10 @@ int ExportDataThread::insertXMLNode(const char* xmlPath, _XMLExportDataInfo& dat CameraNode->SetAttribute("Id", data.cameraId); XMLElement* JudgeNum = pDocument[data.cameraId]->NewElement("JudgeNum"); + // ¸÷Ïà»ú¼ì²âÊýÁ¿ + XMLElement* checkNum = pDocument[data.cameraId]->NewElement("CheckNum"); + checkNum->InsertEndChild(pDocument[data.cameraId]->NewText(itoa(data.checkNum, s, 10))); + JudgeNum->InsertEndChild(checkNum); // ¸÷Ïà»úokÊýÁ¿ XMLElement* okNum = pDocument[data.cameraId]->NewElement("OkNum"); okNum->InsertEndChild(pDocument[data.cameraId]->NewText(itoa(data.okNum, s, 10))); @@ -225,6 +229,20 @@ int ExportDataThread::insertXMLNode(const char* xmlPath, _XMLExportDataInfo& dat kickNum->InsertEndChild(pDocument[data.cameraId]->NewText(itoa(data.kickNum, s, 10))); JudgeNum->InsertEndChild(kickNum); + // ºÏ¸ñÂÊ + XMLElement* PassRate = pDocument[data.cameraId]->NewElement("PassRate"); + std::string temp_str = std::to_string(data.PassRate * 100); + const char* temp_char = temp_str.c_str(); + PassRate->InsertEndChild(pDocument[data.cameraId]->NewText(temp_char)); + JudgeNum->InsertEndChild(PassRate); + + // ÌÞ³ýÂÊ + XMLElement* KickRate = pDocument[data.cameraId]->NewElement("KickRate"); + temp_str = std::to_string(data.KickRate * 100); + temp_char = temp_str.c_str(); + KickRate->InsertEndChild(pDocument[data.cameraId]->NewText(temp_char)); + JudgeNum->InsertEndChild(KickRate); + // ¸÷Ïà»ú½ºµãʶ±ð¸öÊý XMLElement* JdNum = pDocument[data.cameraId]->NewElement("JdNum"); JdNum->InsertEndChild(pDocument[data.cameraId]->NewText(data.jdNum.toStdString().c_str())); @@ -269,7 +287,39 @@ void ExportDataThread::run() sprintf(buf, filePath.toLocal8Bit().constData(), element.cameraId); insertXMLNode(buf, element); - ftpManager.uploadSingleFile(filePath, filePath); + QString remotePath = "/tmp/" + xmlPath; + //ftpManager.uploadSingleFile(filePath, remotePath); + QString serverAddress = "192.168.1.170"; + QString port = "666"; + QString userName = "FTP2"; + QString pwd = "123"; + bool success = false; + + if (ftp.state() != QFtp::LoggedIn) { + if (!ftp.connectToHost(serverAddress, port.toInt())) { + qDebug() << "Failed to Connect"; + } + else { + qDebug() << "Connected!"; + if (ftp.login(userName, pwd)) { + qDebug() << "Logged in successfully!"; + ftp.cd(remotePath); + + // ×°Ôر¾µØÎļþ + QFile file(filePath); + bool isopen = false; + isopen = file.open(QIODevice::ReadOnly); + qDebug() << "Open file " << isopen; + if (isopen) { + success = ftp.put(&file, xmlPath); + if (success) + qDebug() << "UpLoad successful!"; + else + qDebug() << "UpLoad failed!"; + } + } + } + } } } diff --git a/Cigarette/exportData.h b/Cigarette/exportData.h index 5c484a8..1876a6d 100644 --- a/Cigarette/exportData.h +++ b/Cigarette/exportData.h @@ -10,7 +10,8 @@ #include "tinyxml2.h" #include "common.h" #include "cigarette.h" - +#include +#include #define EXPORTDATA_FILE "camera%1_data_info.xml" using namespace tinyxml2; @@ -26,6 +27,7 @@ public: // ¸÷Ïà»úÊý¾Ý int cameraId; int shotCounts; // ÅÄÉãÕÅÊý + int checkNum; // ¸÷Ïà»ú¼ì²â¸öÊý int okNum; // ¸÷Ïà»úokÊýÁ¿ int ngNum; // ¸÷Ïà»úngÊýÁ¿ int kickNum; // ¸÷Ïà»úʵ¼ÊÌÞ³ýÊýÁ¿£¨µ¥Í¨µÀÌÞ³ýʱΪ×ÜÌÞ³ýÊýÁ¿£© @@ -43,6 +45,7 @@ public: jdNum = QString("0,0,0"); // ¸÷Ïà»úÊý¾Ý shotCounts = 0; + checkNum = 0; okNum = 0; ngNum = 0; kickNum = 0; // ¸÷Ïà»úʵ¼ÊÌÞ³ýÊýÁ¿£¨µ¥Í¨µÀÌÞ³ýʱΪ×ÜÌÞ³ýÊýÁ¿£© @@ -110,12 +113,14 @@ public: quit(); wait(); } + QFtp ftp; void init(); void start_work(); void stop(); //int insertXMLNode(const char* xmlPath, _ExportDataInfo& data); int insertXMLNode(const char* xmlPath, _XMLExportDataInfo& data); + protected: void run(); void check_save_dir(std::string dir_path); diff --git a/QtFtp/Qt5Ftp.dll b/QtFtp/Qt5Ftp.dll new file mode 100644 index 0000000000000000000000000000000000000000..9d7d435e1c2346ba14a288db96c52739b574e111 GIT binary patch literal 763392 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

_5?Z#BO9oe^<~hcbv`Y$x>9)z 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

k2(@WXJPf*;Dg3O|h35%?kh1pJUc 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 z zbmL4b|N0-sAM3p~#as^O!}5WLD`C_vSwnlQ-?%3pOLaDP3|Dt@xlq=)y>q@!IN+@g zem4$hta1LDuRFn3W(mXqHR`Hy?hkR=b|yCy!4|x{APq5LgMA^kKFU` z=V6V&KRo)qc|XUH)YygWPgpnfLf3L}}t6Vv0=D%$h)En0hL{^EQ%)?(NE z#a07r9AD{nt>?R%k162VaO&I1$EQ}q{(+kB&V9pvLT^ZKV|m-`h|IW zc?arre*EOT$xsiR->sD49WNjLP=DRv8-f841|lq7SdvFTnqAE(XwTFVGRu8ztz_mi zu1CTzo#slBE)EC4moWyA4Td930xJpVBj!j3E6>xwt^j<)@+U*O`oo_L?|-f_j|V9% z`PlwA+a2LAr*+CUA&q^#1}}HTmoC|q?TXwZg<<; zAGyS{P=#;0cR|R_Tg%nTG_{F&SCQ`(nfl4-@4VD}4BMcIfFjTBYn@n|0488|@)>r@ zPi5wP4ZlXg58RLDkb=4VJ_R%HF5gqdC|rK`6?bY{;VLhEtHIxEFicaE;rg#%F7TIA zFa|Fx^6%~63Gpjd@Rmv6`}T-SRd8MXoP$G)MkyHmK|h6ms4h?VX^Meh|HmkPAqU4C zr^2{JPxqmgKK%MDOo#Qo?emeE@7-ZTTDEY*ZHy)iU4hi(_uwj|RST}JMp{&QYYEc2 zd9U4#v}|R-dZe{4zx+?6risZLkV=WZ8)e&y2mHqk5s<$(*sDYd+vJ(X<4)I zhmlt7`(O*h9y`mB%4b$Tg0#wW>Z6R#?e-Yb(pKLvTI5mrIO5vyJDxzQ+cEx0q=uDk zpF&!-=`^D?zdTmX@YD0QBCXk~e;O&ogHh>$ozEaHU3dGlNOkW=Z9`hN!23C**7W_1 zRy?G97Q)rUquk9@<>M;SF=kX}Hno1DyOZRYEYn)Elki1xMR zg^cRoeV@^??So%J`tw5lq6H>{!M8pBT-k`Sol@ivl+?Dn;yOR5#JVXx*4r)hJ&U zJc7}pnp8$h=an$3JNF`^`mv`uUgP~H%GW*{%4p3?Qy8t=vXs%H+{YQMkPkCj`pS=t zLO$+6ck^~?V*g;bWY^BY%!<)WsFKm`x({W z^);i0CtI`jQU7E(qo%uVWwbPD6{CjcPcv$L{3ypge`2&|ZKwShp6TRhMr#5sj24Bg z<+T5HMr+%>$NA?jGirV0#sf?rW5zIQIGn*~Swsn=`unyssyp>Aqb9G*jLPjhA4GSh ztqhD-{glRN?VGC^l@>q4D3m`&%gTOW)Y`f|dmdEe3}>|Hh1rZsXO=T+y7DNa)?fEA zT5-<7Xx;10-@@>UZXdv?x$h)K%ibtp)Ec>w(Yo?VM&+v?GOCaKoztwYZ=-v|@+d~F zMQM!IW#7qYMa)wi`yOJn>Xok;)lUjMjP6V)!Z?ka$f)5dE2H}F*K^$GMMjI_-eXjk z^b?~}V*7W{y?MmVoVHA2R61J7sCDW6jFz?E$!N{y4;ig%^(&+Lf*X#Yd#Fc@ntq?f zsJZu2Mr%hs#HnEyqeX*HGg{N?H*WvQ4M)*^&HW=8EgLh7(V|mJ7`5K|0HdYHb}(8u z_!OgMcU)%FRNK6Ug}?9yM)ltP8Pye!VAS9B3UCs~uoYAWOKQO9`_Be*&8z$>Gozaz1ebN9%rHK)Y)UzANB`i1%6y7?KtAe8lwQw>w(gdn6(&Cv{}ZkMBlIj~w>IS2Hh0G~az@RA%(v zh*nSRH@{PSC1T5fu5w=L?-B33{$XXw#PbpD^kcp|xkifIwz&V3ZM^*=_rCjWRfqe0 zB0b~Y+qP)jwuqMco9jj|Y#F)dQnOo5q@IaryDOpVVUK2!yT7Ql{9{#jzq`6tZQ@i{4Me=yGkDPVuJl&<6n?;UKUHW~Sd95Qyq!t}{A<{qc zlMU_8AJeyu98`9XPB;I?$fzH7Hh*Y!`^f&gp1jq=uRbDs?*4ZoUg;Yd`pn*4p`QIC zV=NyptLbnh;^CXUrkf4zBF#4}*-&yUF!J`TOZ!;1b%@-Wyk%d)npTl_)HE~iZPg+2 zvfrRl1N;X@jyTi*^L=eQL_RRF;Pm9jrRqf07T>L%a|FQQjfL)IN|Nr$q?7X%2 z)@p}Vt#v-ARVy9udmUt@m<%CWwPn%aZ7mjIB^kmbA0bRah*rW7h7iI^D8eL!@NTVI z=l|on-}klMy?bxv^Y#7yKL78xH_x80`?_D(>v~u_K9arcLf`rzSit+mGCv(k6Y zI52S9nD>L%ZfKz`9x?jBuT5HMW!<}9k`~)d>(wW_?VX=B(+dB%v-$FIEwvq6J02J{ zqK&pFJb6pf;%F`8N9TR%VV$(2IZr)z(WsW%#PfT{7l*gfdbhviXhCGnz>gBww=Ej& z(yq#%dgBH6R}S>XCr%r1-&wnsmj-Ije6zP%&804_$rl&4JGeboduzuFZ|%AyLVH5b z{kq$o&9yVn?04kbvNoDC`i1c~&26kb7WwP&8y0lYnqTrj6VGoQwca;$pZ3(V@!Exf zc_A0&b=5LgTz|M{Vmod0((#{lp43rGX}>ON{g61V_s5rpy`G(|HZv@62wZ#Z9_n_pW<-YLl+LZttTD2Wn*{ zcX|4!_tn~sdG^mn-}cvDJJWv2x9j?9AAIzC<*$1Zv=tHU=U(t>FYUEgJ6(`}USBP9 ze$oByQ-d_mIX{MpOT*1}Y_HWU_+w35(N-(jRQ2hd8>!#S(D1GuT4^6WeM!$f?g*`I z+VaLX-P~DgaeJ$Gr=|4NGG^W>51(3g^RE{4D%G_7MYkrezqX(Dl9X^)1MZ(2I9zqawRcdAOCOwu0QcUf}QmjkskJrCa+xhh!u;p5_$S{G^BzJImY z6VFX}4 znf`Wft$KV_Wb(&tw51me{37XxUfM-fw~xPhbU!U}$>w8+FY2Rx{Z)s#UBgqf%I}9R zs%X4>;8U0U)@Y)utrqoFkH~_q?X=HoTnSsXKL+0V$vHQT$Z4&$dcJUY!DRtj_Ow-- z&*;`l3*Xy!>+|c*)D9P3GhtqA2W|ZDA3m6H{%-@l{ja-LbnWAvM-4brn=|m&$|rYr z(pI)=>UqDklQ!wHZ}abLk)kcie0|sSq%$*%*LVhY+&(_6r+%W-sm5sev^qKlj)APTA`D{=v4| zoYH$%-MXQ-wtjgFG4x!UA1%_))NboEE5dbgPi>!V{0p--_Sd%Wd-o#O6XDvS z;3X5>9rz2aS8gio^IAXcsT(_f+_QHV&Hme85B8bYO8YrD>5&gN^w%;ze`9EX=%f8` zRaU!q?(M97-}&Ws-(TNJ`*7Oa_2*q1r+IQCe;RmROYO(|XU+U5YyZHr&oBJ^rb&kf zPXGR@_aC5)3ZC~=kgm1LT(sk@)B##p%AiJ`ReiLH&AyyBc!;j` z&hL9g$i#lyck!=YG=Ffa_SDwZwuK+{))MdQ)NgK|_FBrq*hWQB1GJ-~r{1+~V0SI{ z*W}y3_>+G6?bY)ZUeZy!vwhcbqrQpI*7XYPwEM~315*cdDe?>+rd@INzNa7lvy-+X zYs4)#pVLn3I%~-G!4Vxb+j)(HliH8eF8l1urd+uq0O{K z>7Txn^In?vNw2MgVm|1po!kHF3l}cS8#rX!AVjhr1KhP!UbB@%)pL+7sFK-#4y>{_?5$-Qjw9q$pMo;;0 zsMe(QkN3rQ8K@1OJFao750bST^S>UYJ=9+7{Pdv7kJTI=*gbf+{psPYv~On4nSIXl z=W3z9Ogx%0`CP5rpIhGy{9%x`Fmd zcr<4y+o7$8?rVEY4{kZz^LEfN-G293H6Q$XR4?CUdogIkQT=z@Yu6XPa8$qY70+|s z?>(yT$avt%g#4p={!g|K`(1ogpOLU_*1i3X>Me{PTxsL~qxv25YkvIlrz84D%}ch~ zK02a*Gw0Q7vtBr&-*Iz`)>R9S=&4=GGGD&#h`u^+X5oslNA%{K2l4+AJ>jy$PjqR2 zM9(jucF#-UNA&mK8aj4b)nPsCVaM$kZ8@y}^0Dn-Q{OzS-}}QA0WU5)tPj59(53C} zJgg^va1H+-*5?n8*tlrSVck>nuI(P3^pdW9Uut()uPmSA2x@d#zw@s7f8Mh9kiI`~ z(e0hTJ*3~D73CaRcSx^z?d_NYD-P+ckHvLvasMIx&YoWnoO0tKJ>btbf83sPNI$RH z&NXw+J*0mcxMf88nTPbPg;UacCmqt4C2#G1PRJp>!^+3k&aXPCUs1g1=AGXh)SJ2A zOK`t;P(SkfZQYu$JgC1p@v5x979Z3v`61=}pXVObrzTW9Wt)0XA8|)+(4dPC>IusR z@&7@+B=No5I(0dy+t0cFz~@a#FR}6eL49ja*Zp_zI-sACdv)w%UmeixkMB5l<2wiR zuU!}Z*5-u+y7zka0sUC{-4WexJ)q~6h1cwGAJAX8?#Hm##~#otfBo`sY5D>E=PnQ5 z{C?^Iz2o+Z;fInA=wB4uqR)#spdXA|a?jfbYIOa~-Pe!)xkmpyF6A!U=QVo2W1M)r zRii(<=jzB;SJdcBZny0#f3QX$QTm+cr};Jds|(B5w$HE8?KnR8t>QLbHc_}+V|_R zSyfH5s`lw0oH^v`{Xgu}$FHB$?x~IY^w=qHH=XkKK7C-q6QRRb?bD0%F4#EW@qK!E zMNz-A?`41PoTj;R_UQ>%+Il~B%|87=^7&Wo8oy6}VnqL2&l|l@&u$fV$@;6olJ0sHjBXLL->-nUo(rAbBEWxwpzpWMFd z-7B~3)h~A4*SYA!z52Ze&whXHYkT$bOKn#Ntk|nRyP@^&@sI4){}?kTWz*ez^{jv~ zwu=h)>iw?H81Tn6d-d(3XTSEq#J#%r{>5JX=-k(TZhQ7#{rAY~^pL)L^>YH2Uv#X~ zUcE`p_TPe<@73R17xhDOB-zIxw2XxVY~MEo0nGWS5~b4vG4uWdSSXPIiRRozai#@ zvwyh0TA!44N$RIltM!LI+xx-CS=IVS*M6{l>jl;Np{)~gYKB$oqyBs@rG39@{kE20 zw4HQDwSN93SG0R6salUQe&o+-v~g|_`i)C<+o3&r(8?zV-}C1l-TusuwOzLF(cho> z?7dsR*rWgQ+zrd_|8S3fVaL{6v)dh+_~`?Ps-k3R9{xGsqg?$PfK zp7eS0UF`2Or*WS-d-Olg`f%fAGxzA}LEr7UYw{kwrqg5NKD~U8{&qpKIFW@e7MjiUFN{>48(z_45 zS*53Swmt7$Q>6#Iy=P(KGgbPd(K|X0dbCP^(ph#{-hEYi>6c~2KJbcGrGLNn zp@NH2tMpFMCCRo# zZhd6g%>$};?bh?l^!|Ts->ttfqU)7=x9rxN&sq9>;Agw_ODYo&C%?B_@A${Cv=OiG z)_;7h>dM)xcI*GTAz}QhPw&ut_Xy{nPFTaQ}bi~o1)E6V@4{mw4C^`0r0|1zfaZoOUl)A1<@>^FY9^+K2J%|k(K zdycw1M?Lz|wl5z1W3NXqUh?zRdv|&CsI0jc2JZ0a{~C7B@}zG(dcQ||T{Lu)NALgj z+VigY(4${7=+601mwWW}kF?$O^D7?xrCnX~x~=r+PrGtM=RD=nvu;`W)HjcK^vn=j zU;TcMzCCB=i_b0a=<{5IgImpG`?s==kKN$W-`{_BXuBC6{ZRC*B`;m&(GNefd()^1 z9)14IyplgJ@#xOful7H1zDIvAyXl7E!#%poIf(z!JA3Xc@AvWO30Jgy>E0BN{%gnU z4rh1p=)q3=oU|m5e&+S(_ihu1zVY+uh5TW5XRt?J_v5G7yLI~C|I7$XnSSLY=^5NT z1qt@b7I(e(hxH*QziZiLh%siulrz20jjI=-+~&4?6J7qodwKV(?-07o?Uvr%BHz?+ zY;Mmsw_BOp^UUo==Jo<}JHp&vWNxb`2bP%I>Q47Eb34G)Utw;yFt^v3+tKEBnYo>0 zZm%`B!_Dn-bDOvGjo*56yNS77VQ#DM7;Z7QrQh!&fM=Yx0{;VHRg8h z^X+}S@k}=N2b3@jF^+*SLGI)?Zdy)3{`g7x zIo5|Dy}PXc7MdH1>wQ13XubdU^St>zH=A}$syU{%z2omMpZ%(LD=kr2E15!?-{)0) zwf_Eg%`e{mcS6pJutHg6lF29R|8Mf=gmO-j;4=M7F*(iT43o1=K8cxA+WpYR`;5nc z<#RAYWsdWBo@9;=02%<`gb}4rz3DW0;eNzIs&I7a5@72*CJqD zE*9($6%|85MF}|BPv+Zc(W|k@GOx6yesXOs%0 zBIGj5w#qMUsxqwp$a4Js%IooeXFdALhEc{@bvAu{Q9elhos^M=uFImY?D(>igfSMq zBIGjAVVM8=`sSBqsb|Ek^_S)Q`?+dDg^aEIS@n0;qwm!;pF_td^*dD`(Ut!VPiR{~^QeWCsWmx@}<@oz4UAeEA zyy<6$ia2nxpY$ioqE~?I&mU=1m0|TqmgDcIbmhJ>@@_$Ic|E$;{4$@%s+WGeeQ8Vm ztbR!Q{(e?Jw(JcRS=dYQu~}cf0*hXeMV9)~mik%!koNuktbQyf?@si}>e034H^$8H zI-7CGzP?C(X;YP9^+%TD@27O-zTkbKq5!+;mU8^%k!fy{hl>;?K`r`0g@CN$O|6%Xkm% zH};zRN%`(GrjDP%#qZ-crc9nN_Wb-_!}8r--PsciC*+MG3Hf{5OQ-)m9f8vkI30o0 z5%>oqU~6O(jRx}_XUR;xwm6%JQ@q_wp9_cBM2JjRdJ#4eA-8>5?e}G0J+%{$^6o;HNA;lG?DEm?Jc$F``S@{%Ko|Cw6E+9W?ShiR{pDP#j+f!FZav* zDm~UFVr6=QT_i|J28Jii6U(wy#A$KH1x@pS0myqYSV3R*Z|eLa1%kKk7@bH|{e2*s(Qn zh$h=*RI%O0E~0Ib!P0hCn#IR>r--+;64CA`VsG|uYke*L*7ifGx6~3Jqy1vd_B%dy zzI9Y}s*SDD-fipJd$4I&maF1u=rs1~sF*4rm5%Cjs_sUgY2xiOs=rBHYkk5TB5bMb zX_V#DM!qrk-LCat`Z3qyv*}-alI+L544-Api&?naTz28IwG_5UhlpGn<_?wR8g-lF zt(zfV?3GnLBrBg4FD0K5^LxB8H{`P{ZPR85$!sU+4GRl6(EL+XHW?aO7 z^RM=JsM=1=A5NQa%DPD&46AXd_A7nW)@F=r+d%30?pNuG<^E*TzAQ)CmF4}D+sco> zYggu*i(girVDZzp-fCOvtNJKbekhjyNc$?E(zCMKFZsWEJW+91aggI}u6Ml2u4c6J zVAwa^>hG!SSN^MV)V8vt`jt$V_SCj7OMO{yUsm~4y0Wj*RXwfg6R=}Vm*pyb$;sxn zWaX!1nNQZ^9iQ~UY%712zRMw86Xa3RJ8*5j+e*)xPujO`OS?+1zWi!`eH>^Pfj#Ug zHpO&C5ro46$)g)Ln$qx}tvV%mE)IiasM^t4m_SxB&Znuk9Kt)Q3QK1Bf zU9<&i+gnTQc+1I%3U!Lm)L;=hI?yd`$opJRp#KioW!hMb{51&Z?zQlI73HJKCOMiwqQz)Hjm) zM)nAkk36b6q}Yr)1d7lef&X5*jO|?PDGs)YVA-ZoHW4+!OqbiLZyM!Ah|oNtMvBDLMj|mU z&O;BZh%Pr{VvH-smStQSv8pe&h98mm(MUut^y!l)E2}=6D*aSrq4ZQf#VXyG<^Ivk zGd^t+BInt;b$##2u6D5o+)Ce*Y{VhRA%X@wGQ7R~#CDcCcAG=kiMx$nrs8hoYcTEbs{X${RqD*lT7>H0~F zXPpq3XHQY*EwXHXX${VUs?7S>r_E1j13!M%&Smx4^q0pd$9qgMVi@ie;lw|Dbg*~s zk+x(Xlxub7q((hLz3D#wMYRYOE!H&^EwY=47O63!MOBO^y3&>LA}PV4nOBXSf(G@OZuk0g%B6>%Zh)#8h z=uOf(X+~Z6vZXpkGz%5Y&}o+M63wzBMKk7%X8a*DLs#z0budqd(^tdjtMu7Cv#+|G z!i7JsD)Sg3V@E$x^)py)`(t$s$}{t~45OaCsAsBZY3nK)d-#h}6%plLukpKeglN4k zUbN1S6RopjMeEe2qBU`=iw6C&BmU+$p&l{Rqp@hV$=fc*d9kbzzxX6#k{?Y>hzl{X z?z6QD6RlFah*q{XqKT(*WmH9Ed4xMWtJViKXBobSi-?7my7!>&zUeal`C*h5Dx&ku z_^bYE=r$4&t4$k*ZUnmFB6^{z+de|H&+jhUXLl3rQ@e`xwhkiElTaB~(X`y#LS`H1 z`{WC@i{ORM6q{^6>e?)u_N5Qdu9X~9ylrcg=hHU~eM>)B=#8I@o6(ni%Q4z4jy8*> zZ#JdfqD5T}v(54oX|HCqR|4%7<83c_WK(_Aw;veeHiBbU`0>ZC(Ztv2tF)`NPMgfW zYV_-H5xP*VeaslBSg5%BvWx>`E1JF>UFCDE^wo_G60!8JSjK!Tb*=3eRz2yb+*X{& zwy$rpA0-nXqpl&;HCRNBHp{N>7+@`<2R5Z%uAQ}~PkyD>GFY_qw_o*PU-p^fYR9o} zdVOn=dgoiq`q$Ui-`)0C#;Km!&%kS%#imA$@wojE+z9yU-<+Co$c8VsMT)#`@ znr@{WUGxR1GXXZ*-_N>OmF3UhrlF!~X1HjY8YY_di1xTD8gKIa{(eARZoKCAr=_3MV}WwfcEzAo2S^raR(5aS{YmsSnfS&pgSPTnIgo2zTPq-hB?GkFo=3d?s%3%+y!53*7HY8 zK}I?9`iJygvTr;a2XkMCYxJJFl4M=vb(~HE9bzU3C7zPy_HNLZZTY)KbBODJ+OM|N zenZLpr@s1{=_i~|*3L^l{`&gwogX6@8;lQsW22t7jFMwzY2A6?)}9X5<_^{ub?s#M zmPgDQ8rKc%3o-UF4`rM4&}i>!RrQr8xd-tz*Zbr-ZA=vX7Fn{|R`ENTop#XB8z$POwiaz|oXedsTd}`^yk7s>`z^bJ z>0fPsRdcWp8$OuVZVg%f!%t@S?bA`_Jfqs?icH2CC^E;lk>^J0JceRX5!)3FZYx#QaLZPuyQj=3G*!pSit zTtqDl&5$+#1jL9O}zgU;3#Y`&GH}7{7zH zYd&k&Y;*1EF~Xycb9LwbK7F*dZOrs2uIb6Ou8gB=k+*GCyVyeQ@|u5&kp~@v=b9|H zgJ=V}?c2Y6x6QKR<5??ljwG+M(avsJW|~>1^nS%mvp+SU@3!d2U2E!F+S}+OzS}2> zfp<=0{$_0!pUK(||KdlRbDD~|Vq=XL&KfU_H6Cld(RFj2&6s<`X_GL{CqhM&Jb4w8 z_!#5O&o#zqo)zF)L=^X-!icAgM~P1x$owgD%)Z~y`cnC)Shmez%5ET!bqrNl;=1;R z`p3~9*E__1(Dcl@dBE)V8UDsyUu+Elz5VF>_QjKKtGX%n?Pvbho~kdIJYonjA*PSs z>JX(s%97=;cKoXTqRLV1o9+q_E?ZN<>X0LuVS;B5PAx6IGuIq#OGTI`q_Xa4=)LAB z%n!8KVuM92*H>b>W)#acqu5R6y8C3;BK=)YIz_+y`Tsxet8cuMovhme<-Je$aqZ;Q zbGHiMzGG^TNO{*ObWk?i`&@i0lzr10xHevE$Md>V90TIUIy=5;-Z?L*?tY?gUsQFF z&&1Gfwo_zptRM2*FUsYDo!_bGc>S|nUv~ux7jv(Rxy>~?+#5$@?OM;g*T6jIE&n4M zeb=&*^Y+~|^W#LPqEkEGRID19tByMc$$3rXQQS~njJC1F;$+*#e9iTaOy=xVj#s12 z>+Ev;Gfx|9#q4N~6I^duSbL4fSj(mvErfr*Whg%l+gvlrY=mvDtt>Qc`{>8Fk@xR8 zM`WGd1idB;qblV!qgwl>z4)H;zQe=ZcX)^~@*wve7S&$&mHNeIpD~Wr{^IuE6?0Wz z#V3ntXL;YXG3R*Eoa04_#D#U&KaQ)nF~@U_mhoPDkKfOGvXA%ai3#Y^G3dL$zP40ttys<5XK)WUpL@5=-7T48TGq`m$Isoy+!4wg z!?jIyFG$%ke6ZX{sc$})`qcgJ&Ep^2lCwXuC8vI9OSY}Esrz?w{&Shf)!KRdpK3FI z^Q7r}?Ywldc2luY{CC^sROf!fF300cu2VDr*FL9YtZi7=uts$CFxNJQuAl4K{_0!b zF+j!PROWu;IQ(z4UvenN?+}jP!6KRa338pA+@nQh?f8-7M#c4i^7wG7W5st&DqoHG z|8wh{+Vx+nP>!)6Glb)8uxQnzxu;oWyub4TJ_;=F6VPaj?1Sy)(pG< zne)GK&7HMRs9O7|F(R);`b%$U-fw81?|dugIC(FIbHw=3)-w*)U;pktBhG$~oxWxN z-R*zZpN8`NJ3iEROpxXLr|k2sS3@!QclY_0@prfX-Etes_wV@dpVDTsUjKjhMUj-Cf}8Q`G+#x+UP%Q`A3tH_xP?f88nS zuSS0@xX6!wgKO5m8Efx-rv}!z|7mOdhQ?2QYl^?ShWHO&ub*)LD^WfR)`DjuVj6x1 zTE;+L+dbKN`rqw8|FnL6>k8xkjZN4T|I_9EU3A`tx7i zZfIWkPuh2~de+zf>r3}{ANO>c`Tm2?`x5@*qUJ@#{&fB;X(yX+PrCmk^ZUu>e|3%B zdW}%kRh?tYXLx#;&+y1&gxX)jCsOxZQOjmrS_V&dL~7_6%k$&6zx8AHnSo*uNbGZJ&#-)g?vG&XDeAYqHc(s$W}l+| z9BkhM2Kdpht-ESB#lErd-Bx;%Cz$Q7SoQ;@Z|cQ&<(c&Cbv&2;F5i23^SF25D%JBS z#ysWcIVQjD;B!sX(6Kx(q00BuX5RZgmUpL(`%EqovB`WcPt{G?P+VWS+V9Is-=7ak zSL)0qUWWgcclFeMe|df5p>+QV8?m7xmiMD#7rH#Wr&tkM9$fppVtfkk?WIoO-LEmi zcdxvMRA!fV6)b(Bp<}12x1m$dyB75ww|whgpWaF4NAEKvx#IXIhQ0UFQ@oFC)&Gvp zKjlN45WeR#+WI_>@#cz*XQ7IxYG0G%I|qq`{4qSId@;{>Wg73MN&RA_ulk+Jr($iy z$6MufIQ}VpIF5k<<*T}^~~I@ z9|VfcV6DG-s%?m9n|%S#UytVb>vIL~wYY2Fi&VZTmiD>Vb=)(`=A7@1T{W@WL+m`Y zv2zD`efG}hTx-t@GrmP3?=%Oz9w?Tr4HQfK`Q}k znD?zl;`i^24OK?1P3*~IuDr)cTba+5RCu362{oQ7Jn4CzvRU6aQ~M2n>v?y{cy^U% zR(VFONh;4CjW(ZMZD@|DuROU9&gXni)lrpi==0nY_y1$K|6lv;Qw-mn;2QRE&qEoy ze#U}NU#(p`82WyWP0EK;wdZT!-`G3OroZ}d?VNj*Cwx=jRBYE*kNVP;FDk~qWvKlp zW8Zwro-dnr;`yFgC~YX;@s)E*ns<2CwRuB*t)XYm{;TiF`TA?lEB@Ajy>AaQ5YAThVEpS7=CTc~G^^J?GvH|AM+=z6trkeC(|BrY-Y?m~8A zPi>oBK=pyzZ`j0J{8q=33tU0sA<)l{AL@L;Uz=%>LE>VN;4hzy!vyAKxZHfS@m_3&QKsQ{J@1>H(p;gQ zDdn3!ba>1SU&-!gFV?3`<1-MdoO`9I1ymdod+8EZT@t@`S} zE(#J)gP?vs^NxI9)lWIKea+84ZyEBPbjr!|mLcb-@XLb4M$pzQ<7?!jmTeh3`7>pL?vavflD=Nd4 zVy4x%b};(C|96?Z=aScOE;-5Xxnz<$|2o+@T*olZS4Z)Uj=_HI2<5k$TUEbQ?cnb? zsC1Q%VwJAg*Ot;V=C#PW?~|x>mCslU%Wvng4(540`RzO-w)LeO_AJlE`feM~7xFC` z`fK!P@0@Sglm1PR@4d?FfQiQ1z~6a$p;YEqJEu#3<=koJueTqg;~gvBckZm?aYj~< zcn;j^J09tm{*Gr4UJ)dggR@Ri{|L52#|McgPf`C@Y*&v95;^|#&FhP5F6oQi!QeeV zy0tMf+Mw=wQ+$VD&dGUin0E{kxPFpQfTH8O|!)Yidc@Lu|16Sn^C=1P3Xhx_{JdTb^*-G?t6p8ZD51N zj&GXZYry`-qQ5ksy4u15L>TX>hH>uf{jv^yo_8MQyZP2*#|hWi%(jR>Bchl5?p8C} zPG0+J+_TZ@P)~4WV1=_>zIP{WjPZu9Zj2ayMRA_*5|Nv{rDEs8uFNixFV`Nvi3Y+{KrA!QP9P=9Jywx zJqFc%*Hv1S?}4>VP39X53CDj^gz@p*Fy1S!4iO)Fix#f(An$wo4YWo486l!sX0g3l z>fQEcwmaosv#>u1RP9%ic0|k-equZhPI8Nbk7KGHrRszU3II`mHgS zgw%d}RxZ2RRd8GZ>Avx)TT^+Dje}`dqfhy{7E@ne^E01$uR|ZTUIRAX_m#1zG_On6 z_8--+jCS(V{~rhu52OwiE}JGoJVBKK<&G@%?r%1&K9#f<%Wh)Awe9qS=lcg=_OoB6!_=W8VYSL1L)dj}KDc zH_g|McRl(J^Jtmhb!4f!N7XchzpXJ;M0z4B!^%V4!C65WfhiQi&+u{c5RtJfNId%| z$3Ke?zG=SK#B1kk)xPT3WZZMH+gjRc{QIT)hdPey8;dHcse!%16ci<|er>k2R#c=EFH=EYAb|`szl%^Ny!}afF_pEP{6YZC7yTl%y5PEv}p-Ozf^*OpQ5PSm?2^={+6ub<_eSJZcx z{MWk!^=?nS+tk*(Uj2^r@9d8B@ecIy_MGdt5%R5eS;yKus$UrW@A$ZQ$C*!>u{Npa zx}Tc=j6M*_wZleSJLDQ7*U6gaS-z>K^o%ln?)e#M=6AVQo974Z!!C@!AcilOpSWg| zbtyb9{{F9qT~NX1~|E{LRm&npWTXM#h`-|M znWPM%R8XD@$F2 zA38f&6oM;#*HNr9LqDTm0l}aE`6d*KnH%muqnKcN-d5gRhzwEZzc- z`IarOTO@LQY#rB9xc8Qr8dCcWMRi_q|2@HC19;0%Uc+y`o69#dPx#ufF+O;Qr}n*O z;~Srm+*@xXn%2E@!>FPTC+;(68urD=>!N%&bF}YO9`>DTd;9s0N0eOqQD6C84^`Kn z?hh7K;2Yn%%5w-c78M(FM%}fN+Wnz?_mA(^%JX!iZpM9GyLWEm+f$*O(+6-)U$@UD z;@imQB@(P_<=W>Z$_-6<-Vkw?{FZhz&go-0r*F(TedLhPO@SU~r8=L_HFf>1H{|yr zt;c)$wRt%{Yv)IwInWrBvVWOl;y-R%`PIPrSgr4;qSMgvL6y~zj+!?O9qvCcx0?4L zkbtMm&s-+9lo{M=tN#{55!F8!A4Rl}a2=K`e9b1nYJZQ15VU$8v4b*kgc z-#STNE0A^e?OzSdS0ApYuYMRT4)~5k=Bs#FrylkcHLtoq4HgfB_<`o zMu%ymcFd}6vkgPkoXh;c`||RcvD)i5-+vJ-c7i^XC)sFMZ~hFMJZF^OE%y_L_;##Y zb9sh?ZyEFTDtBO3K#DWNd%Q0SawdRtRjB@O717k|A8{?^K6V`c6sBfq{BrDjru6)n6 zc>&MJ<;rjMv_`LmU%lF~lH5on7dZHyzmwxZWBDA+3D5Ewx^qn*CCk4b$NGlv4N*GV z^7x$3H5%?wG~@iCSr7Bu>t_3h80}`>+v-twy>H(i!Qu#*PMb?MY^gRk`%G{_`Uc(b@E|qV77X z@|q=(h$B7CXP=Ao<$JyQ@_MV(j{^@imD2IQEq?S?r5&#$x325vO)K&#OQye{P1#*$u}8DY33-KyWil3sU)%XhCW>E`WV!(0Azdjty7)HlFn!AYkz-P(yjJ?v!qAVY76n5 zDW5+q-#s)lLrj@GBY*g`Nz;Wm|H8Z}hLo2xK6}<^{t?;Z^T%iAjh{ASQchk*-t;T; za%RjB6Q@s`mNPN`g8cFMIbz22iC5?35Ai1DWSiSEv)6)m|5;Sklegy@ujGGqcpU#(#$;-P+%_)RX>^C0!o-)NidR zNc-0Q`I05wYJasQ-P*5~S<_J@q&$2YE+GiXEQUDe$v=dVQc@i&I47Zj@0+AYP<lrnx8ADjQqgsm2hG>sww`)wM0PJ}v&!5%}ctq)n4HA3N4#>Gx+m z*x74c_CeWw<=U9lvGFhecsJFS$sKMBDU`a_xlQI*YQCA|J~=PcT2+ewIJ@fod5cP_ z_xF#x^8du(_z4rUb0%GxJNc@sr%atT-F;2ojQp9`URN;ddapZ!1`io}*08hFhmSaC z+Oc-vZCH@nDoCkB!8!3{|CFV&F-w79+z<; zBx~-hxvk8YJ@vg;c>GB(&v~r!u$0nnDl~XG`foq+^%F_n-6#Az=cqR+&E%I(QGbxB z|1$cYE#0v+LHx9I=hDmSw|~>)Mvn7Y6rKO|6<;TbabI8cb&nJEKi~3Qnk1ScA58(Y$UkC%4rHdOAvTdK6{yN>#I zZT;PRo6C-GUo{?-olTbgM;TwvJ>GUW+&IkW@BdZ4+582Yc14WW?%!tRa6N48?_JT6 z_}}oeo#bct`8mwrKUH_xC*)5J3^_h#F8-&i|KGJ!H1qgz*;OBO(S-5Y!GJRs& zjQs4hwBv%~Pd}$%VvakX%R{HAZ`jYv8$WB@w4Ce4P05*dWqz)2R)6Kld<~U#oTL9o zH~hs-U8k`&rC&X+^(Y;``_G$j6<3IriV5!lq34dDnse^-?34L7F?W2P zkDA~5y8S5nE7$F(V1Igsn!M^dbB1s6{>vXf`2;`zj}EKT)&83i@Z2oKS%pI6UJ)v? z;FrJ{q-Dlp~kI`&S9E9$9eX<0DXkTmdJ)DEJ%I zp&|u-5>!fkxWyXY&ywlzqrfB6;TGIbsgddMGxFxjg`~qBU#4v26u1PqWIEj96`n_s z>F}cq8;BeMCHw3*jd~sf-EyJ6KM-e0jG&SdW|mFPFF&9rzF^MRsiv;!RM7TmgGFViQ?x z5@Ns?E>g;*XpJPyCDcBfH@jxyhP= zTn?|Qq9`fDU+p3O$dzzdHStGIf+qntvKw9n3Zy=qxR>}Nr@+sEBIHsyVjtgOL{5Sy zgT=^h_%Bd`EcVmq!E)pj_(D*MoCQAu%8*OpkQ!o#?1D4FdZ`012NhBW-U_xLSHfcs z5L>AOe+4`;9d3V+cwRzT@Y5g|xfI?H;*iB5@`5DfEciLl0l6HW#?_w`WO)@Rm#Z9o zklpZ~EWFdCzKv(}d8T(HvJ1WxjFstdOKw(WBd5SW0XMP-?!|Nc1;}ae4WJOY82$?s zA&XF(r~<`O4zr0PU@@|bcX&pE667q&jcj5$aw)tQtdaWs&GwF9EpiIH9ITT%@P4pa z>hQu?C$LTGz)g7wULB8VTn=ZBAa2N6aKbs%4LJ#Z0yrA8&qD7{Ii=WvXDJ+hZo3;oCX(wG~{CVV^D}(3CFF(f8-Q67sMeK!mop3 zflzqra@C=ZGTnw)Vi;*kgo~szY$QkgRpai)D-UE`5U8`+kH7KSomGImb(MK+Y zN3X#jcgJ_4|2+Dv=u0k$1nKt z*NMqR$Zy%i1LeeDw)NXKaXuJBx*L7~6r*1PZv+L%mGBYZmUiB;iJ*7!pS(%%#h^sy zh3^MjWPgVL0!h@%waz9U0ez6m;alIMKajT^-U5oSDc&c}pj6s{-vP^!E8(CI@EIL9 z`~WCKE`h%QDd>3M?(6AS$QkfmU?*}3`~fJV+zNOm%<-| zBIHW=5GX-*eZ-s(Jgh6y;2cn6tTE{4AJcZSEchExN!>kg=MA(S<)*=eRlfsj7KXMBo%`bidi`)AlezY-4Fh(G9O!A}7ba2QCJ2_)`L}1!Krt0q+7X z*>+zLe~^Ms8oUTBMyC{Zen}kANrL->By48D3qcxkDf~T%L*E0p{EG2HdJ23L6p@~` z#U>_#Vq`b0ZKW?^vk-m)q#>8W+rOdiQfHe@Ed36DNKg5mxfG<6UI-7bB%V@+hyOr7 zly=~iz=i+i@Q=@oFuAB-d9B={|mi;f2#{U_~+?1qa#2Wb<2`7io5<)(OuGw{%# zGvKGePULd=X7nCBqswoqcAZNk%gJR@T_$SbZek=CEppf(oxCnG0y#)4vos{d^ zXA@@ux3mM7f(q#m9K4@8ke&p)K`?oX;pLz})(id+6d_l@yFfXztA_OtsGuFQU~z!D zAg90=02ex0@U5T>xfp&6RARpZJ_fcRyAImK*&qdfvfu|mALLSaAE+Syu0zBUj3NGI z$84e+EJse{PRQAy6gd;V29zTgz@LLMWMQ+5bHRG#LikZofxH4f3>IWz-)N=z8S6tU62#`j%o(TN6vzKgxbYO`J&2SBqh ztX+&j9tl4U@{!Bo!(bkAcpUWxi;&CUDzFAw#M?y+unf5aJPxcyo&w(nRv>34U=yrE zUJHjeqg|1+;PB@359AWK6x1M>!@b(@{`^Gdy0&)lReSW1b353@Enp<_8u&AiiM$2Q z=}6x|E`py2Ly^niF`evUEb<2U7qA%F1BZ3Ci{;1#@O_{Jc?tXqD3v;JLKnMmBTs?n zonaRR$Q$5lP=+kJ(q};haw6OnY(Y+iM}czWOgI~?N1g(21s(X#LJgeJ4d0O6@MFM( z&JK7)3jK%lZ1^qULf!)Z25Qjp!1nI+71D#@1Q3jz1a|_J=yZWMf}O~&9`sG%MkfU> z>qXy2F7J)Mpa{7V{sAmN_Q1PAF>=Y7cK*H~aYK&jL%c!C)r>E=9E?G(fCu-be@vlG z;S$h?^invvA9W;sHvAoMBGI zxJJy8-Ee@;7)L(^egkBYUI|~F##lpM4_`OPE(&uP3-D*40NDda4kjkZaqxp+5wdfL zT|5icB5#Jr4yB(UuQ|&uz6KeS@E?vHM%|H<;D3QEtUPc3{&DKL~aqFM~e;)yP|5+i=DnayZ-zILSK}{u(4AABHnW5Od@y@D>n`Tn*oL z4r2j%1#BBh9FXH+H&}tZ8E!PnE^@J-0?!7Aui_X4-!c|IbLrdTsVi85{ucPk3G}Ng zsTZ7Rd`JjMp; zWi#yJi+pU-UWqeF2g|TI0M5UbSfRfT-gz^92L05zb}N(!sSkGM!O=@- zOWGm>UJbgSGx8DI_0J#!g{5*37{-nRa7%F8R zLoR|ZUrn1LZ-##dh3I?WkJd1Dkkeiw&Y%YS^WXumF@I9-l-KRzxwW(r@?m)H8D_}XYtDNJ@+r$d}#jtpX{)(MMI2Y8=UbEo` z)-ku>L(+T1{{!lRJZ8OJJoO3jK|cH`zEt1?ayfhycf{!j{6>Gk zkN5xzuXVxg}fQ=y_2?)Z4EyK(va7}jee!w zk=wwXej{$^Pk}!LhmjA%O@F6vGuI`;XMzoK{)F!Vn~@j8?|^m48{pr;8sutt&@TEX zawa?#6e8!tJ^!G+kh9@cUZMwcG36e}=`~Uw{?))G^i}z6CpxW8xg**F@@t zoYaDEceHkhBIL1c9AaiWhggq%82-JZLpW#RXD8~?85x_YU5LXO4v~bs9zNEMSfRgw zKVp^ClXxOmz@1ZxT^@Y^eiLN5=_kD%tZ$G>FFeyB9tH)->3xua6P;4{6OfC%1Ge|2 zE;1(YLXeC8I{1bDwD&cvZwFvQqyEUjgB;>+P>4<`TnUPicfr>VLB{45c;hgKaHC&* zwnMZ_cZh1zN5U_F3esbSJA`cne>a)D1K@R_9C__I4p9Y0qAx}|#6YkU-*&*^qX2mm z;j2I)I%V+ua~&cPc`ZEUJpMK`vIp*%fe*-TxD<3C&gJlLAO+b2H$5MH+5J4iy#zT6>}f?(uoc-lC0u48P%gU8b!kjvp)ClYhy z8u+0cVv0O+5^)1*$Zq&fP=dS&UI{iJFS(Mr1*9XF!{31A$UER;U^8-Xu0yl{eULlA zw}KSpC2;apjB(_7aNrc`g1i9!8h8q5BUqctoPeAO-vcUJG*z(0TrWakWr*bdUsNz8YMFF_V^{!EAX804Z; z37>f_e{URlBs>XZAy0wlgJR@G@Jf(K-fghBjn+H8_mC2;L61A=kjeu6KwX$W!1)KpZwJ;IJEzucuz{ z#ULFy7rq;8rmV&A2cQOd^K6Is3#>yv46nF}Hbw4pGySfRvXEE6AAk+WHE{nq^dIEe z@H$X{?13B4C03Nx22KSf$Z7D6U^((4crz$P-T~{kU>~^{{tc{07W3!>pbWVPUIL1c zm%(d5F>)FF2Pi;342R!}Kgb>65x{i={YR#OVB`hx%U}mO<#6(R+KBW4@WUVuc?;b2 zHrfk$(cR1&VC;SL0l4`+^d;mj@MN%LA;%{8C2$yd9c(KmKFBV36qtfM7M=%cZlR8F z8Q5_%`tU9=98C*4bY=3*bt1S@W3o`H*idk+4g**?ATjUV4k<;MKU>@>excGkbkjvna|6<-l&WH0Jz)$2g@XL!iUfhIl@Y4@* zY`UF!{$YpsXbJU2?(+!a>oNK>ItB2E$MFZb9G?D!LoC3~HhAHav^BDLiunX=MlOZV zdYU*$9eCby+Usu8;jzy!?*2u)!}mVRIDLTr34i+>ev_WGf@9_LjD6DG@C`38C*03D z;7Z0*DRTwsv*CHGhzt7b;Z3WVA4rdRk$Gtibws}c-ue=A4(W+6Ge5tApXlepGs+wy zi}W)1-B;;9q!+wKEMLbz+O!;Ax0e2Zoc0D|>rKY|V)_`o=q=_M^tZs<%V|68w0WC; z^$zVpdL{hJyVMu`4(lAE+k4cJbT>Tfeflf;jy1kf6`r_GH-lF|19Rb10GjFpCq;=@G~2!3+cPyy_?V{eck8GIh*Nk zq-TA>{Qo86k@UlGz!rQaeF^;JR_aN5($}oJzQH%rbK&XRm?KCpgdx`d$s5B_qsNdUIBj|#rHWMq>ZATqAl9IH;RF7(8RQff4M87&cEEp}N>I>j>5 z2VCY9XI<_T+1ObRZyZNmu#=hP6!Rybk3TUJouYY;Q|!WK`4p$PYASU^XA!JTbBZy@ zxp4G!+7x*J{4>ZRJ}$RYyawXvKRe*Nufc!hGI(Ylexkn&9zVk=*313|kK((iMWoM$ z`_6QV4D95>ZLcMrzLyC{UFQ@X&=3q#qS^s{lvSR;(Jg|y6bNG9w;Q;d5=?k0MfBj1HWEOI{xf}SKfV;IyBwcE@oa3u(a+!y$IaRBW1xUz!E*Rx zu#4l}W_Uj+rq zIq*5B=nU2uah?TV3<|K51>XW@a|~SouLNuGp$z^86fUAo;h+^xv4XN(a8IxVI|JZx zU_Hm{T=-5ffN~eXuYffCFNc2wh0FuH;K=9EAtrHfe^9~kaVUHx$eJgQQ%-RoD5kzk z;I}~BeEKc?JLs^0IK#0oPO$N$!=bM*M-jJ0aA_HRhWdJ5 zC+0w4Q*!!R<{V_n7lS0^l((JYR*;J9f#cpGzx3^0<`z(fEV&4jBTIe&Y(aLd!xxRwW z-;90MZ27S53#ZtL%{K5VP)*%8!xO%we^U1%xan7nLE2>i{1M0|<{tQ_EzCLenPqT~ zt?1yx82D#UOmU|fGEPB#DD;C zYjA)_!Jn*<0MVPj*{}tFMm7!*kHrLtW%yGK=QTxN#ujcL7a%I}XEyvne1KSvKZywe zVqvoYQHDPrxPS8iu?~NV;XlAO{BgFRERcpj%i#e2hE*p1EJz9vFSQB~YbZ-32Z)ZX z1H@v=%7-6m6Cga4wG$3$hkeS*glD!75bG(c9R8t0fY>bS-Z4Pj4t7vh348>kQ&vo; z0C5c%OIaH_2Z(37;2ULC!f%{`|CCh?Z|us8r?h);w*c`YSTF095+L@2EtHkgoxelX z1N)REQUk;YutmlMZqX}11Tzn;fcFD8dwO_2{TL*)M-mCYO2#p z8){P}iV-7`At7-RNis1cK{pykm}Jm_8HXX6#HduGqNa)(EmhP31~L%7RE(&osHkY8 zqEd@WEp4gNHrrA~r5bhLbMFBLLfq~?&pz9I7I%Mrf1G>nx##@P*PT0r`)lMSw)4(1 zh=-F6;vm|Aa>Hmet7!|gJ`3F55d|D@=%A^l?L(5D#~GPnYY>?a@HEe z5cTn9QqL@d7@$6b7t+6%FdnE+(k6pAGshr?sZVmQL9BKeL>%?W%rl5}`34b7eXlUtg8|BEg z?sfy8PYj}qIwagdeUac=F?Slo#mGgOLvZOHJm)swZ4euNZV>Uz>((-Z*z^m=68Yor zF^CFeqdx6${k;a!&bd3`KcuHVapeYa7ZR+!EpWwsq*JCB{yVZ$pP2i(Zjd-ImWH6G z${

mN`VsYYf6oe1_rjTILk(>VyAQPdart1XnguAL7#w&wq$GP@jHS^a$5w{LI-; zzqcC1A?h>dG5iyhPkrXJ8AQWV(HsqT2 zyg~dGWm2E`7YyPPWT8IuUNnehoy;}rvm0LW66I5$JuvHKgGi!2yWzFJWc(AKcDU<+ zfzRl~6YhM4u}V43u;x|r5TAa@*C>bjly@1#1+Nol>Qf9IZ%_y7Qw}e9ld`B!F*OKGsPX=)f@={JY zJm$~DlXB+42hafJw87KieULdoIrILVF^t;DlMR1{O7Y^ajLE;T z<}hClz;pi2IAo0~gR?$j?$dS`d}qiY4$#K-kBRvwl+Rw737`9v_HeFc*dT8E2mQ#o z2jL~3lb>_j;Hh8GPR=!d$vS{qxvmvDQ3>7)8&Qb$xgCCn;%JxYD}z{!{Pd$8-i$)T zwhVrTvbb)nFp90HgzJ{VkC2)8#7r{^53&%468OvMMv+YZIWvr6QEqikiQjvg_;=~=9xyZ0kx3d1y7nqS(KjvXUsN=MDi!X z4^Ru`$Hq_x)FI11$|(Mf638Eav{4xO8`)Xpx59YdtI$jSY?%HH>PG%j_+$PCb{R1r zXcRk%`9Wy0P(I_(3q#-IXZmFbCY(&YiB$mJ z6mJx{^l2CT-4Dpa{7U$tQJg)OI4}QjFrnMbr(S0WUt6KEQ|I7gnS2lYdW|QLI>O6kYfL zylDy7z?Y`;4)^n@!@cZrHluiBHRA{0y2dE(%q0H!jCDrw%0}|zn=dg6_a>tlxQBTS zv$7etq?f>D4%$w704}(c*plvoH=rKUOJNxG;k#ve4t2w~KyNN%3?GCSIf*B}1TNle z6ycoo%?=a8h^ zDB5K?@Q!?==*G80Ujc2z2jNB!?ZWSdDPCelIW8D?1$~51ho7KqywykDP%CY>6jDdj zhA)S2q7J<9^G-K(0G|x+M&0-}IE;Gnu|-C)7WJ017r+YSzK{6Bk5LTXwACoKpcH&D ztU)E@Z-#H7Y8wx72g4G-$CEtJK+Gb z;s@a$uVkFy<98axaaR#@ybBtxHi{sA9_&M{c=I*%KkCHC6&uAFs2QIEtB?)f1CRSD zeT1I}zd}RAA?aG$f=r}~>nH=6@rU5!yBHJrgYXB})5kJDT#pXoo8b`Zkg>XfzCs7^ z+3;D^jqioCZ={d#W$@Q1gdc!EE@6D&Q{d&O93OzcK`r?7n~dT?RC+&ggW_h!Gd>nx zfUNjj_$spF2jKEsSZ8E9Y(_iro$%zJ8ATL644*}ZD8Cct+)6x2-wm^FV~vm=)}dbV zw7@^0e*7RjtCY6mcf$wK5I*5{_7v2|xy7&&4dCnH0n~}_hC`?se+Zs+2YrUO!Rt^v zeh+*Vb>VyAv3JtH_;~mWG>9L7j=LDg56oiEHj49q&YTP~-rzUxA)cg%;O+NwUHt9` z=+6qq5_$aavr5{I-&kc7wKa?@{La1fQ7z?E5R*D$vX5BHb73R0lHLm6K>^bHp|Rd5 zlJI7@0@*1i3*Ldc@m=s^G)SJ}2BT;~v7~pvqZ+vu=@z&ch42}$0A=F?@NHC#AA;+f zn1gsP+=F8AL3mX&YXxPtz}p{WjN$v>^oJPp)Hw!P&@ge!f+syp`Q)*~@3hdT_zd`0 zM`PjH^aHei}%9Y zALm^B0Nme3A5}63pJWW9UHCn)31#CCK=;#}i%)4cipS6}=MKSRo}r$k$H8VK@ICP9 z=h&C=$sOF2yujXsPk)hqMrM3cC+$FOl+zA-Q49VMT<{WO6rT?BPzT-*=O3US@qKX1 zE6fpm3H%%#q|D6Ms2l3V$G*-!j?7i8!|)9x@O|*uH&|Qn@vszG@b&N;Z?eAQlYd2? zx0rYMEVv!{@ul!Vv=iS3UqNns?5~aD`#tnK-UXxHHi}IAJh-bD;Wz$<`P4_9@#ViW zil6?Td?Ct#`~JY#!w4nIXPvTk2-9W)1D z4&`6lO~l8EXmJm+P#Es;HM~w^u$@w;tG^SdMT_&v3r@P@OQIG$IpqO?4zg$-UX}B9DEBLLN3wn0V&`$u{M$s*;q}Ky3opJMiW7)A-V7I@1iTfx zP$J$B%aH}2J11Iv>$}7mp8;P$ad^{-(PBMH#=GH5=n!@2Iw@Lgv_y-3d@;P>d(;PC z3O_}ic=PwE7wYERYxBjkO|)c-#nRe$deQwEp9_*(!=m?sF(DtA4H1^lpyoN zD}PAc@b&OdC=p+F7Ij0(_#SvvGJS-f16Lv|ej~gc+3_uB^A7Jt^anoiT*gZ(vB10G z$~0n%?}Ya)W^C+ZkASD7M~h+7i{TqfIfwLwWzpglZ6 z@B^@TU9@P%x4?JN5I$)=?@LA*_0$dCv4ObZTjAmhsXsmhUqohn5AkUkHtLqU8t zya6>gQYPGwI`QrBebj{?gvVaWn4z2$crz*|y*MXYyp5VkAB3}Wqxtu*tQGJy)QV4r z#nO|f2X1yoi$T(N!-vowe1}X!yYaTo(Zacfu}c1Wc(RN6h_}LPP&d94{s9e;{~(Oc zBM;sT??A)Eqyv74c99-`8FLEtHBe8u-c25SGdwPz_rBwk;D@M3<}YBqMe(G!!ZQn5 zTkx6wXz>Y3!CQ*xYZQx**%~b}w?&H*d>9@TU@gTbz?V=leh9v|gL5fA>q_c=6=M&- z`)aQFQ_8{jUP~Wd$F*pq1)gv{=ifzOBOC+TZhf9i-8-VV2**oQe6K7r=oyI}i1#tc5L zp1IyYeehZE(?-Sz-qplfiv0LycuF&UfDgkTJ;?d^3^@NG#sJ<8k9nARA=BX&bg+dr z4L*#9@NLl1Lc8$0VJ`~e2VvPGtU>r8`0#$#Mttm}#HW?|;Y09}$EX{AH=Oo3=W{I! zv^>Fhz-Pn1px8$kGi}5T#o)7HCyK%k!Rw!7?V_A|821$OZa;Gh);`NRNuJK z%sc!p82>zbKRyGldV%uEUkYnqWNhIFVfIVR5quYPz0AAi$zKW^en|}RL-4a#S=;e# zuQ9gK9`eU@F@8`v{t!I(b^01_hfSy(-w#{fAcpt>IQ%AU$ES2Nmi|cJJ;rta6fM3& z>5nr0|I9rViY46ze}U%V!|)jtkMD%NC<#9ZPx=e%Kj%iigI>O${uhIctJYZ>58?&+ z?H@AEQ6~AjV9Q60dGbj9e26;WCDT43CV0u^XeVAW7nS1epGJ$DP#fh)?nNDV$q!K< zUUJSbZN^J3LNT0M3dNV)x8SpRQ%EgpAx}HJgTM0a#!H%~nM4U*@*EVzm%~$dU!w)z z#XHb99A^?S_yBwo< zJ&CROB)A!c@qSo^{P+$y_xmQX6Tds&B!2h8c1HHky`Uiht3Ok&sL ztUvHG-YwsXx6d<)r9a_)n)qFCLN_qmH#5Ivk`ZKBL0?Nhb!cAvUe|!r}Os0Ii9iDKuNkmBx=PaZSGC#Zq zwcz)_Ce(&+h0mU267~3~6yD94W)i#c;l;eKbqRfdPlVrDW)dBE_jx99BT8>04}1q@ z;t#?+8+FE)z!%Qve0(T_7@`b(C+u2j5&|E)ivB?dDYFM=uBNX^_rpJ-T)fF{5?`WS z_>?u2eF5#ocfh>0ytDL4+5&SjO`@ChGMKo|Bup|L7G_a@(&t@h631Rd97wmr+5g7% z@F}ncx$y1qoQ)=VFt%b(2Z#k>zC5CI@}@6y?Asl!)(ye?qzVA^6Ot zyknYjhTzRPw3qZgICry2^pf5R+qW<`NO!rYTOMu4`{CTnr~^I|zKNP;InbBS`z`Uw z1=J1gAcO`{XCdPmUkbmqjrcrGneeIrW1I94d;?{W z-Un~oPJHmq@TeN=CS9~I*dz|FkhJB;50yHOcs_QP4%69;@IybTrOgYaEc zf**pO8>!DT%vpHrP1FZpe6vX``x$M)55qfeW&Odo!FO(B-Qe8#Qj@r14|9j~U3W3| zP&0*@RC->1HKG?g^KZUkD0_zQ766} z&UoA;LijoGdUOyUgs&qPz7I}&!X&csF>n!z!)L&JWX1UcmJC4gJNG` ze!-d^_APuj{QPa!B7FKgCb8{Z>Wmk?^d}17n_(Af#rMErR3`KMhQ3A3_yqVA3gY`= z)O)NU_!t;Q#rQ6`;kV3pd;os4kM$F8huLTt-vSr@j+ng2bz#NtsVBY_-u}5s z+=uFAI?O*rAK^>kF<%e|d?LIO#lFN?{ZhWK*(Boe*G-E$4;tP&OS}hXpEXm|eSOD$Fi(e0~K)ddoCAPskP$s?%K8!l)ci_ipi1g3lvB@*}j*Imf zEo$zjyi!X=!QFkS42>caF!M_VXMlpLSAI6?do$<%RB-9?B zB^JW9s04o@+=1-)YvH{};45Goa`Bw-S@>I2j(;CcTR2l3z(>QAP=IGLKY*!d5Wf^| zLdiUHaKdX)8UA|s05ajL;nT>4e;&S%I`Dsm(dQ6bo~uY&Pyjy4%ETt!7cD=6w^M7-v^v2?m_AJ2jF9< z9se|Z3mwA03qL{w+$a14ev5aPdsz>UgQuf%d@{^MF|0rGeeL%m(aHJ)yHGcN>c6Q7 zOhsTS0#gx~iojF^rXnyEfvE`mS0nK1dY;tzvSOQJjpE&kH!E&c+^m?Xc&_5< ziYF=_ttb?S+Vt!FUh!qcHpP0ydlYvm7ARh#n4y@Wc#2}2qEYeC6Z-Z3s@SL4t=OSh zr&y}ERWVy}g<`Ve4;7DBJX$eI@k15gXB8V2D;4inELOZsaigML(W-c=;vB`J6{8eC zc}#ETfMTy=i(t=R(Cx6mM31L2=ezJ>LpNm*NeI z2Nca=J>ThynTlH#?@@e8u}?9kRzEMG7*c#$@sQ%2Iz8XHin)rr6hn#~iU$?nQteIJ zr=Opx7*M=halc}(;+%RtzfG}N@o~jIMN@;GZ=qtAVzFYK;;V`uDjwaapLeR_Dn+ki zsba6E~@!>{pC$*3&Ohyg~6<#rG746yqP%^Y2h>RP0q8QjB>>&lj(_P%%p} zpm@LHQ;NS=jCoi;KT$DDajRmPVu#|8VqA-U-ZI5Y6t^nwR(wJ6J;j(u^z&9JUZ!}1 zVo32>#Xl>axL=*8c(r1k;(Lm*YQ0#f_>dZ3dlYvlUZQAKj8~kccrc`2uU+vTMZe-I z#Y9E3;$W42UYBBv;;o8qMVsQOibpFBRqE&WDDGFhRq--Kt73xUbj61%^z-jf^eL`V zT%Z`IC=~mH`gxs-A;oJI-HLX_g^DIMAOEkdv;V5~efj5lKMXyfvqkY{#Vo~B6hFIP z&-bcgx#DGt3l(Q6zJH&dzfJKT#Y{z$;{D}%KChxx@mR%!_v**n6-yQ46kG1mkC!TL zR9vWdtm5!5^n5QU)+^qin5CGg*k7jS?^JA5EK$rZR&nskIU5kz8;6E`~Aq-@vq~j?)UZa zId#9U$6@MzUysAo{k|TDsr&tZowfRZq9#-K`}#Ql|8~EBXnHCyba%MZa&vvo!b0ns ziSOQCvvhG9?|xrn^A!3=GFh`O;>8LxQoT;6ZzS!XKGCC}C*O&Ea&BbZUWxgVrPepCAYp!1t5mK>ZwDnHk zR;SNuowW7)M_aFQjkf-CMonI!-&tVQf)i25rd4T67f%>1=Ml;0rlsb%J%#j3$^p?+F%%0%;L23$nmBjb(GM33)zL;rZ(2pQ#IaGSjQgU=#-ePkR=Zy6u9ueSkYmD^ddH-DTM;LDNwd?+HdTMT7p=#bT zpC|uo8Yp|}-f5|qZudJ2)3!SD+>T4#lT5mGtQebCkof_XH`BAhmp9q;9L*V~^^SrI zoQ~X#yn-VYDF=agNsa=)%(=K|^Jb@SZQhPa^V4;kRuI@P$gfTQbZ23XFVE}u_$KQ< zRpWQH()HEi>rY5y{A^k=ab@}EIz;w&U&NJGd-Y*DasF$gYUC0s(|oHo%+@=6d5!|V zK6a+D{%LLex`N~yK6=(+g;J#_M`!4y^&t4&a+a=jUQy&M@aH*L+YZmD=ISl1+5V*k zxnGk-{Bm@*s;TOnG`kG6O-Afjqxog;Z`mIGD}L2bc0ywW45ygGVD z`skGS`btH~)x(jS?(jPfuggl-k4-CBY0|ZkXwvh_0sc?rf1BFKY4i1&7wd(KQ)i^+ zJN*u|ca7h&7N^;lE?&20<=An#g}pZ;^$Pzcc~Xu;u4xf_p&WSBJB!oO34LcoPB+~? zA*XFa(h`SEkGz0fVPz4r=PdgEoR<@k;jpoD`uGYi7Hj-xs%`SrT(_IIsZW9uqFme@Gvw|)@eD^)YHHHB)HHVeL~UMar}4MrCeINc&sFuJ#ZE(NYO?i0 z2B$V3M=p{m+k2idHFf0?jvdf;Ui#FTna8H1Z@l!zi<6~~w&Y7%Ie*RJXT3`clP083 zY)y%*>9{;{l8zQF@~G|VuQ~pFY^vAccUjl0^SNbx_1nRb21l-VOFa2rPXUVqJ8-_k z?`JC?S&_7J_0?+jG}({K^4!kl1)Du80^@=xWB6^Y?H#50!bQ1URrK>x$Wk;nt3vvrLBHob)wOeG7KNjt=gDTXWMAGH)MwY3L*tN6dz4asq zg(*h$P-KZL?d#Prmo>g^mb^nQ^y_=oSVnEDscO-!#$DBL&J8rsJ5@yn_C(U8g28jM?|3o?0^1bf7&3Q*GW-sIG!iX#A zt3#qSa?Dg7A*ii9wYku#j3&r^CBY)k1zCwvJvua;IG@Ph0GCIkx6`eEJ7W zZD{f_^9X&F6S+T43}fW7NXVPmWBDXFvYUhUKFf#I^cpDcF+Xk&g*RY9?Ck-j+Q7dWXA+O(3EueM?HwddBOOAsu&6eySX;#|~Cs@)YFiBPY`{_L+!}csbnj z7HCfltmo@@R&Wx8{*D~h zBliNG(Wwre3T@RM7mh!Jk2_RnV(O!+);W=9%b07=1#cjd z@*@>{x17G(hN#`-Q_4E+Ckmys+eY$j+T!zU`&h5k#hUG7IiKW;vYkjm=Dd8QH;<5&i;C}mnr}JvW z-OTvI`u)tq`dz{JL#mE4il3WOFLiFoW2Q`+g(`ke+oO(r{3Y#E!UfJPO9S4?K8sAg zpl(RA^ZCZN`%nfapSl6lxN36~E z1zN|`>p0o{^BMg7WQ*K#$&uk-S zXcM2R=#K>!X(M3dn7pc76n=EPd}gVq>K|N3a>%o@#*G6Rze4S9T0XrVtC?E#kF@^K z4{B?k&xjp;^sU8N?IM?Gwcy(ZR&jYN8(9bavyxVk(PxCRChO$oAl7ga}Arma%Ealw`(8aMh>aj{}lJAo&xzXXZ(Sa>3=>ZPe^qiC!?t496h2v zxzjGPadv7>kUPX>#C?&mFT~5eu3(GXxz^=j^2+Yw zi4nUn_Yr)W9hq`!!rT;_%G?^)V{*yh6WBldwb5rhoAa>40KYiMVtjs*daOQ3*&^|1T-OHT5 zjzQ?)eqgZ>-Dz91`Zmkknt~kX5>FA$@QE`HFMWBgI4dGG(1C`v1o zPmiS&H_sUT+~r&=gKy&$5u`@x&P$8rgX58!{9TsJuMrR&uY7vFLEI%%xM?eLJ8fEk zHV838Mo5kX|o z;?~Gx%iJ8))31`(&fpo+QlHP`6CzjkM8wa_r%{O0w}fwz@>u!S>R*TR-Q$c5r(>)0 zu=JCsr90hD|6vDih=|XGlhO)u*Lw2`wEhrp88Y34>>!>TA$p{zdfF#S@wWVl%IQD- zTK=@m=X8qar%7bwUFvf%^j?wek%K_}t^?z4MutazC#)S`8X&eyX;TjO$aYVjHUg%P z#aaZWEe+&p1;|mhXJXH2=ife-D*Hp;j!~+61|8$otM1jjRz0ym=2oLuA4xpxoVJWP zu|)ndgSboc%kq4Mep#A!g&Hkw6_ZRRZ4ix&Bkh)AiL5r?MTi5_C^c<~U5Nd%{MAcW zO8>4*U1FERN(^e=lh0t+z7bCof1i-DL3}f6Ws%#TCwE4^V9(2S%Fp5AEaQmH^o$-C zYvpy87HrM)c?$BGQuRVGC7(e4rse7U-)kj$H|$L>CE@?A;?7;Ez_2b z_WOS6Ijr~eqw=TGet$&%qy=`7tdHDZ^>2zOW4=}AX*tqmZuAm&loDo*Ovl4ql`qiEKMyz zax@6>kxW_Z&($Zk5SPiHWv9y9YH@;$56fwx$L(C=_qp|4J~6DHC4YZO=A+~yZA8i6 zRN&rT^A|Yvv389tBjO5=5h13xyoUbk4TVCSZ`6K!LZ*r1W!dVQtBd^JA_febfvMBi#x>l^XOY^E=YP>K?FI`*zM&tdCSi)jTr%})b zu}5fgKm})oUdz!U&R=@Ls-+ocoUVU&`#vyM%?h~hr1hfgggPumsC=tDa?m{;p zGpa&fWJ80TyWcWhG@%M~C%PV8fi6bN(V6J|?@brKMX#gh&?Be<{S0kKPPF*s>Eayp z6Lb>#2AY9B{{D3F0eTz#Gyh$C`gCzMx&>`VEhvO;L`CQw^djm)kD+E1MAxA!(Cnn? zA_{$R#&q!s`WyNqdKbNpUPQm-cn5kC?MF?h8r_R-M>nE}&z#Qtq)A8jqo1QvbQ8K3 zU5Tdtn~K1{Rs^Q;9x)+RJicDjgdDAjlcdj#62itY@84&OtEYza_^?g#Q%Y(e-)-UF zcog!T^`g1+PfeU_amptsd^}w=cU|VPpCr$<@Vh_-xehnKySZrYc4y(-)N_xTmEtHY zbmm{`-fp3Qg2F{}i+lwO3v*n~d`IC=_-fAQDfDdi|0KtgztB;bf9lrxb1gir$lL5J z^skS+8bw(wDSls({8gvT9#z`+|C7?r_`Y@?XYvh65f8AotDi~n$=^WdFU5ZU1uc9%X4`wLo+RYo*68f z%VXCwPM>SxOHh7TITGztH}K@iv#sz{o{aF#*-!Yi?e}@yg>%O`c)_WO^8e;qyhWF~ z^K#C2ZqKB#^!$P|&pz|g1xfRhl5%o3&(GaF*Wz{*Y$@V-)S|hkkX?T^>+z-ec%ts- zQ6UdtwId@zNjYt#VdI-Imaa88<+PC|(a1>#c36EDZ?_i4DmO)&^UHy&DqEGkDyu5H%2nm93RD$Wl~k2hl~o0+!d1;x ztyS$+omE{`Jym^G166}n!&M?=3YkN3AxkJBlo$$xibEx#(ok6_7z&4)L#?6qP-mzs zG#DBViE2}|xjL@eQk_tpSe;yLt+rJcSC>?WtDCD^tNW@4st2p%YAiJgHCZ*;H6=B{ zn&z7Jny#9@n!y^e*Sy!VH*v3ZuYGU!Uhm%Gy`_7#mhbJ_+qZXcuLzsNmT+R&8n%bC z!`^UlxHKFLH;3E9UE#j)U|7_eYb~{jwbojDZFa4znJ_>$~dv>IdruyWn>asCDsXmJT`E~C|9+TBXaJ863ltsju>7b3{t&(4WclsEt0&qE}t?Yk;0Dp>NCR-7q7&b#MFLPOXmz=;dMh z*+fsr(boy|b~62KqsO!8a~HiHpx;aA`7-)GOz*eS|DBA09>%}`qhOfUnHULiv@wCv zkX)PH=pudrB3MEU%Nm1?;l}31*2eb6&c?3Bo<O2n6IveKtoAGSwpy?wV|`2r(vLBxWUvI*O<_l+-PgeqP78QT1G8fsbNp! zK;v+usVS~0p((k^)|A!cY6>)!G?g`ln_8PXn|hiCnueRGdpm!ZpEbZl3lgZkjheft zbxE)+7!I}uJA*yJf#7h^#JZADkz8S`$f|Hv1S(1@$|}MYtreXWJrx6tC{txzWkO|g zrL8iH)g-`5QpPIMTG?6IQ#nvMTxnt*Nnj1Jv3|H%J4#qL!mJsctQP~U6(-h+givzG z7Rm~_SSw0cC&H`|ouQu404s!v)gghE!KRJV0Bb`Tt3#_cLITlVPa$?Fe+@dS+%a(K&|NFeG-JP?_YKWX>Mq5=xXR|7;F%Y=0;0nVxzUu z-Z-)*1R2ZijN`t>!A8+!Zn88bHd&kOP1#M}rsAg3reITZQ+rcaQ(x0yljzgiD#y8n zF>YmiX9vBE?9yN`*c@yRb_M%_gF#VYX75R?uvXYBvMan5#TBI$!HVXJ_KL2GzKTIs z9do6nGO^NHX|K#?$0=sF39{3)S9VqQRSvS>nAvL**=OwRF<$nUQudZ+_LVO7ltK0r zGkZy5$QrV1`&%))NsyhSon54leMD$$S|YoLy*it_Q3JzlmfGO71}e|{vh|7FzzzY!M5@=(x)c${(lxn~K0x1g0V| W6@jS;OhsTS0#gx~iopN(2>b^oEe_ED literal 0 HcmV?d00001 diff --git a/QtFtp/Qt5Ftp.lib b/QtFtp/Qt5Ftp.lib new file mode 100644 index 0000000000000000000000000000000000000000..bbffcc4cc174eca4c2e60834a40412e9a1b0d335 GIT binary patch literal 690848 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≀+js0onD}+P1Pdb){LD+J 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 literal 0 HcmV?d00001 diff --git a/QtFtp/Qt5Ftp.prl b/QtFtp/Qt5Ftp.prl new file mode 100644 index 0000000..248bea0 --- /dev/null +++ b/QtFtp/Qt5Ftp.prl @@ -0,0 +1,7 @@ +QMAKE_PRL_BUILD_DIR = D:/qtftp-master/qtftp-master/src/qftp +QMAKE_PRO_INPUT = qftp.pro +QMAKE_PRL_TARGET = Qt5Ftp.lib +QMAKE_PRL_CONFIG = lex yacc depend_includepath testcase_targets import_qpa_plugin windows prepare_docs qt_docs_targets qt_build_extra file_copies qmake_use qt warn_on release link_prl flat debug_and_release autogen_precompile_source embed_manifest_dll embed_manifest_exe release no_plugin_manifest win32 msvc copy_dir_files sse2 aesni sse3 ssse3 sse4_1 sse4_2 avx avx2 avx512f avx512bw avx512cd avx512dq avx512er avx512ifma avx512pf avx512vbmi avx512vl compile_examples f16c force_debug_info largefile rdrnd rdseed shani x86SimdAlways prefix_build force_independent utf8_source create_prl link_prl no_private_qt_headers_warning QTDIR_build qt_example_installs exceptions_off testcase_exceptions release ReleaseBuild Release build_pass c++11 release ReleaseBuild Release build_pass staticlib static relative_qt_rpath target_qt c++11 strict_c++ c++14 c++1z qt_install_headers need_fwd_pri qt_install_module debug_and_release build_all create_cmake skip_target_version_ext release ReleaseBuild Release build_pass have_target static staticlib exclusive_builds debug_info no_autoqmake thread moc resources +QMAKE_PRL_VERSION = 5.0.0 +QMAKE_PRL_LIBS = -L\$(QTDIR)\\lib -LC:\\openssl\\lib -LC:\\Utils\\my_sql\\mysql-5.7.25-winx64\\lib -LC:\\Utils\\postgresql\\pgsql\\lib D:/QT/5.15.2/MSVC2019_64/lib/Qt5Network.lib D:/QT/5.15.2/MSVC2019_64/lib/Qt5Core.lib +QMAKE_PRL_LIBS_FOR_CMAKE = -L$(QTDIR)\\lib;-LC:\\openssl\\lib;-LC:\\Utils\\my_sql\\mysql-5.7.25-winx64\\lib;-LC:\\Utils\\postgresql\\pgsql\\lib;D:/QT/5.15.2/MSVC2019_64/lib/Qt5Network.lib;D:/QT/5.15.2/MSVC2019_64/lib/Qt5Core.lib;;; diff --git a/QtFtp/qftp.cpp b/QtFtp/qftp.cpp new file mode 100644 index 0000000..017a2e4 --- /dev/null +++ b/QtFtp/qftp.cpp @@ -0,0 +1,2403 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtNetwork module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +//#define QFTPPI_DEBUG +//#define QFTPDTP_DEBUG + +#include "qftp.h" +#include "qabstractsocket.h" + +#ifndef QT_NO_FTP + +#include "qcoreapplication.h" +#include "qtcpsocket.h" +#include "qurlinfo.h" +#include "qstringlist.h" +#include "qregexp.h" +#include "qtimer.h" +#include "qfileinfo.h" +#include "qhash.h" +#include "qtcpserver.h" +#include "qlocale.h" + +QT_BEGIN_NAMESPACE + +class QFtpPI; + +/* + The QFtpDTP (DTP = Data Transfer Process) controls all client side + data transfer between the client and server. +*/ +class QFtpDTP : public QObject +{ + Q_OBJECT + +public: + enum ConnectState { + CsHostFound, + CsConnected, + CsClosed, + CsHostNotFound, + CsConnectionRefused + }; + + QFtpDTP(QFtpPI *p, QObject *parent = 0); + + void setData(QByteArray *); + void setDevice(QIODevice *); + void writeData(); + void setBytesTotal(qint64 bytes); + + bool hasError() const; + QString errorMessage() const; + void clearError(); + + void connectToHost(const QString & host, quint16 port); + int setupListener(const QHostAddress &address); + void waitForConnection(); + + QTcpSocket::SocketState state() const; + qint64 bytesAvailable() const; + qint64 read(char *data, qint64 maxlen); + QByteArray readAll(); + + void abortConnection(); + + static bool parseDir(const QByteArray &buffer, const QString &userName, QUrlInfo *info); + +signals: + void listInfo(const QUrlInfo&); + void readyRead(); + void dataTransferProgress(qint64, qint64); + + void connectState(int); + +private slots: + void socketConnected(); + void socketReadyRead(); + void socketError(QAbstractSocket::SocketError); + void socketConnectionClosed(); + void socketBytesWritten(qint64); + void setupSocket(); + + void dataReadyRead(); + +private: + void clearData(); + + QTcpSocket *socket; + QTcpServer listener; + + QFtpPI *pi; + QString err; + qint64 bytesDone; + qint64 bytesTotal; + bool callWriteData; + + // If is_ba is true, ba is used; ba is never 0. + // Otherwise dev is used; dev can be 0 or not. + union { + QByteArray *ba; + QIODevice *dev; + } data; + bool is_ba; + + QByteArray bytesFromSocket; +}; + +/********************************************************************** + * + * QFtpPI - Protocol Interpreter + * + *********************************************************************/ + +class QFtpPI : public QObject +{ + Q_OBJECT + +public: + QFtpPI(QObject *parent = 0); + + void connectToHost(const QString &host, quint16 port); + + bool sendCommands(const QStringList &cmds); + bool sendCommand(const QString &cmd) + { return sendCommands(QStringList(cmd)); } + + void clearPendingCommands(); + void abort(); + + QString currentCommand() const + { return currentCmd; } + + bool rawCommand; + bool transferConnectionExtended; + + QFtpDTP dtp; // the PI has a DTP which is not the design of RFC 959, but it + // makes the design simpler this way +signals: + void connectState(int); + void finished(const QString&); + void error(int, const QString&); + void rawFtpReply(int, const QString&); + +private slots: + void hostFound(); + void connected(); + void connectionClosed(); + void delayedCloseFinished(); + void readyRead(); + void error(QAbstractSocket::SocketError); + + void dtpConnectState(int); + +private: + // the states are modelled after the generalized state diagram of RFC 959, + // page 58 + enum State { + Begin, + Idle, + Waiting, + Success, + Failure + }; + + enum AbortState { + None, + AbortStarted, + WaitForAbortToFinish + }; + + bool processReply(); + bool startNextCmd(); + + QTcpSocket commandSocket; + QString replyText; + char replyCode[3]; + State state; + AbortState abortState; + QStringList pendingCommands; + QString currentCmd; + + bool waitForDtpToConnect; + bool waitForDtpToClose; + + QByteArray bytesFromSocket; + + friend class QFtpDTP; +}; + +/********************************************************************** + * + * QFtpCommand implemenatation + * + *********************************************************************/ +class QFtpCommand +{ +public: + QFtpCommand(QFtp::Command cmd, QStringList raw, const QByteArray &ba); + QFtpCommand(QFtp::Command cmd, QStringList raw, QIODevice *dev = 0); + ~QFtpCommand(); + + int id; + QFtp::Command command; + QStringList rawCmds; + + // If is_ba is true, ba is used; ba is never 0. + // Otherwise dev is used; dev can be 0 or not. + union { + QByteArray *ba; + QIODevice *dev; + } data; + bool is_ba; + + static QBasicAtomicInt idCounter; +}; + +QBasicAtomicInt QFtpCommand::idCounter = Q_BASIC_ATOMIC_INITIALIZER(1); + +QFtpCommand::QFtpCommand(QFtp::Command cmd, QStringList raw, const QByteArray &ba) + : command(cmd), rawCmds(raw), is_ba(true) +{ + id = idCounter.fetchAndAddRelaxed(1); + data.ba = new QByteArray(ba); +} + +QFtpCommand::QFtpCommand(QFtp::Command cmd, QStringList raw, QIODevice *dev) + : command(cmd), rawCmds(raw), is_ba(false) +{ + id = idCounter.fetchAndAddRelaxed(1); + data.dev = dev; +} + +QFtpCommand::~QFtpCommand() +{ + if (is_ba) + delete data.ba; +} + +/********************************************************************** + * + * QFtpDTP implemenatation + * + *********************************************************************/ +QFtpDTP::QFtpDTP(QFtpPI *p, QObject *parent) : + QObject(parent), + socket(0), + listener(this), + pi(p), + callWriteData(false) +{ + clearData(); + listener.setObjectName(QLatin1String("QFtpDTP active state server")); + connect(&listener, SIGNAL(newConnection()), SLOT(setupSocket())); +} + +void QFtpDTP::setData(QByteArray *ba) +{ + is_ba = true; + data.ba = ba; +} + +void QFtpDTP::setDevice(QIODevice *dev) +{ + is_ba = false; + data.dev = dev; +} + +void QFtpDTP::setBytesTotal(qint64 bytes) +{ + bytesTotal = bytes; + bytesDone = 0; + emit dataTransferProgress(bytesDone, bytesTotal); +} + +void QFtpDTP::connectToHost(const QString & host, quint16 port) +{ + bytesFromSocket.clear(); + + if (socket) { + delete socket; + socket = 0; + } + socket = new QTcpSocket(this); +#ifndef QT_NO_BEARERMANAGEMENT + //copy network session down to the socket + socket->setProperty("_q_networksession", property("_q_networksession")); +#endif + socket->setObjectName(QLatin1String("QFtpDTP Passive state socket")); + connect(socket, SIGNAL(connected()), SLOT(socketConnected())); + connect(socket, SIGNAL(readyRead()), SLOT(socketReadyRead())); + connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), SLOT(socketError(QAbstractSocket::SocketError))); + connect(socket, SIGNAL(disconnected()), SLOT(socketConnectionClosed())); + connect(socket, SIGNAL(bytesWritten(qint64)), SLOT(socketBytesWritten(qint64))); + + socket->connectToHost(host, port); +} + +int QFtpDTP::setupListener(const QHostAddress &address) +{ +#ifndef QT_NO_BEARERMANAGEMENT + //copy network session down to the socket + listener.setProperty("_q_networksession", property("_q_networksession")); +#endif + if (!listener.isListening() && !listener.listen(address, 0)) + return -1; + return listener.serverPort(); +} + +void QFtpDTP::waitForConnection() +{ + // This function is only interesting in Active transfer mode; it works + // around a limitation in QFtp's design by blocking, waiting for an + // incoming connection. For the default Passive mode, it does nothing. + if (listener.isListening()) + listener.waitForNewConnection(); +} + +QTcpSocket::SocketState QFtpDTP::state() const +{ + return socket ? socket->state() : QTcpSocket::UnconnectedState; +} + +qint64 QFtpDTP::bytesAvailable() const +{ + if (!socket || socket->state() != QTcpSocket::ConnectedState) + return (qint64) bytesFromSocket.size(); + return socket->bytesAvailable(); +} + +qint64 QFtpDTP::read(char *data, qint64 maxlen) +{ + qint64 read; + if (socket && socket->state() == QTcpSocket::ConnectedState) { + read = socket->read(data, maxlen); + } else { + read = qMin(maxlen, qint64(bytesFromSocket.size())); + memcpy(data, bytesFromSocket.data(), read); + bytesFromSocket.remove(0, read); + } + + bytesDone += read; + return read; +} + +QByteArray QFtpDTP::readAll() +{ + QByteArray tmp; + if (socket && socket->state() == QTcpSocket::ConnectedState) { + tmp = socket->readAll(); + bytesDone += tmp.size(); + } else { + tmp = bytesFromSocket; + bytesFromSocket.clear(); + } + return tmp; +} + +void QFtpDTP::writeData() +{ + if (!socket) + return; + + if (is_ba) { +#if defined(QFTPDTP_DEBUG) + qDebug("QFtpDTP::writeData: write %d bytes", data.ba->size()); +#endif + if (data.ba->size() == 0) + emit dataTransferProgress(0, bytesTotal); + else + socket->write(data.ba->data(), data.ba->size()); + + socket->close(); + + clearData(); + } else if (data.dev) { + callWriteData = false; + const qint64 blockSize = 16*1024; + char buf[16*1024]; + qint64 read = data.dev->read(buf, blockSize); +#if defined(QFTPDTP_DEBUG) + qDebug("QFtpDTP::writeData: write() of size %lli bytes", read); +#endif + if (read > 0) { + socket->write(buf, read); + } else if (read == -1 || (!data.dev->isSequential() && data.dev->atEnd())) { + // error or EOF + if (bytesDone == 0 && socket->bytesToWrite() == 0) + emit dataTransferProgress(0, bytesTotal); + socket->close(); + clearData(); + } + + // do we continue uploading? + callWriteData = data.dev != 0; + } +} + +void QFtpDTP::dataReadyRead() +{ + writeData(); +} + +inline bool QFtpDTP::hasError() const +{ + return !err.isNull(); +} + +inline QString QFtpDTP::errorMessage() const +{ + return err; +} + +inline void QFtpDTP::clearError() +{ + err.clear(); +} + +void QFtpDTP::abortConnection() +{ +#if defined(QFTPDTP_DEBUG) + qDebug("QFtpDTP::abortConnection, bytesAvailable == %lli", + socket ? socket->bytesAvailable() : (qint64) 0); +#endif + callWriteData = false; + clearData(); + + if (socket) + socket->abort(); +} + +static void _q_fixupDateTime(QDateTime *dateTime) +{ + // Adjust for future tolerance. + const int futureTolerance = 86400; + if (dateTime->secsTo(QDateTime::currentDateTime()) < -futureTolerance) { + QDate d = dateTime->date(); + d.setDate(d.year() - 1, d.month(), d.day()); + dateTime->setDate(d); + } +} + +static void _q_parseUnixDir(const QStringList &tokens, const QString &userName, QUrlInfo *info) +{ + // Unix style, 7 + 1 entries + // -rw-r--r-- 1 ftp ftp 17358091 Aug 10 2004 qt-x11-free-3.3.3.tar.gz + // drwxr-xr-x 3 ftp ftp 4096 Apr 14 2000 compiled-examples + // lrwxrwxrwx 1 ftp ftp 9 Oct 29 2005 qtscape -> qtmozilla + if (tokens.size() != 8) + return; + + char first = tokens.at(1).at(0).toLatin1(); + if (first == 'd') { + info->setDir(true); + info->setFile(false); + info->setSymLink(false); + } else if (first == '-') { + info->setDir(false); + info->setFile(true); + info->setSymLink(false); + } else if (first == 'l') { + info->setDir(true); + info->setFile(false); + info->setSymLink(true); + } + + // Resolve filename + QString name = tokens.at(7); + if (info->isSymLink()) { + int linkPos = name.indexOf(QLatin1String(" ->")); + if (linkPos != -1) + name.resize(linkPos); + } + info->setName(name); + + // Resolve owner & group + info->setOwner(tokens.at(3)); + info->setGroup(tokens.at(4)); + + // Resolve size + info->setSize(tokens.at(5).toLongLong()); + + QStringList formats; + formats << QLatin1String("MMM dd yyyy") << QLatin1String("MMM dd hh:mm") << QLatin1String("MMM d yyyy") + << QLatin1String("MMM d hh:mm") << QLatin1String("MMM d yyyy") << QLatin1String("MMM dd yyyy"); + + QString dateString = tokens.at(6); + dateString[0] = dateString[0].toUpper(); + + // Resolve the modification date by parsing all possible formats + QDateTime dateTime; + int n = 0; +#ifndef QT_NO_DATESTRING + do { + dateTime = QLocale::c().toDateTime(dateString, formats.at(n++)); + } while (n < formats.size() && (!dateTime.isValid())); +#endif + + if (n == 2 || n == 4) { + // Guess the year. + dateTime.setDate(QDate(QDate::currentDate().year(), + dateTime.date().month(), + dateTime.date().day())); + _q_fixupDateTime(&dateTime); + } + if (dateTime.isValid()) + info->setLastModified(dateTime); + + // Resolve permissions + int permissions = 0; + QString p = tokens.at(2); + permissions |= (p[0] == QLatin1Char('r') ? QUrlInfo::ReadOwner : 0); + permissions |= (p[1] == QLatin1Char('w') ? QUrlInfo::WriteOwner : 0); + permissions |= (p[2] == QLatin1Char('x') ? QUrlInfo::ExeOwner : 0); + permissions |= (p[3] == QLatin1Char('r') ? QUrlInfo::ReadGroup : 0); + permissions |= (p[4] == QLatin1Char('w') ? QUrlInfo::WriteGroup : 0); + permissions |= (p[5] == QLatin1Char('x') ? QUrlInfo::ExeGroup : 0); + permissions |= (p[6] == QLatin1Char('r') ? QUrlInfo::ReadOther : 0); + permissions |= (p[7] == QLatin1Char('w') ? QUrlInfo::WriteOther : 0); + permissions |= (p[8] == QLatin1Char('x') ? QUrlInfo::ExeOther : 0); + info->setPermissions(permissions); + + bool isOwner = info->owner() == userName; + info->setReadable((permissions & QUrlInfo::ReadOther) || ((permissions & QUrlInfo::ReadOwner) && isOwner)); + info->setWritable((permissions & QUrlInfo::WriteOther) || ((permissions & QUrlInfo::WriteOwner) && isOwner)); +} + +static void _q_parseDosDir(const QStringList &tokens, const QString &userName, QUrlInfo *info) +{ + // DOS style, 3 + 1 entries + // 01-16-02 11:14AM

epsgroup + // 06-05-03 03:19PM 1973 readme.txt + if (tokens.size() != 4) + return; + + Q_UNUSED(userName); + + QString name = tokens.at(3); + info->setName(name); + info->setSymLink(name.toLower().endsWith(QLatin1String(".lnk"))); + + if (tokens.at(2) == QLatin1String("")) { + info->setFile(false); + info->setDir(true); + } else { + info->setFile(true); + info->setDir(false); + info->setSize(tokens.at(2).toLongLong()); + } + + // Note: We cannot use QFileInfo; permissions are for the server-side + // machine, and QFileInfo's behavior depends on the local platform. + int permissions = QUrlInfo::ReadOwner | QUrlInfo::WriteOwner + | QUrlInfo::ReadGroup | QUrlInfo::WriteGroup + | QUrlInfo::ReadOther | QUrlInfo::WriteOther; + QString ext; + int extIndex = name.lastIndexOf(QLatin1Char('.')); + if (extIndex != -1) + ext = name.mid(extIndex + 1); + if (ext == QLatin1String("exe") || ext == QLatin1String("bat") || ext == QLatin1String("com")) + permissions |= QUrlInfo::ExeOwner | QUrlInfo::ExeGroup | QUrlInfo::ExeOther; + info->setPermissions(permissions); + + info->setReadable(true); + info->setWritable(info->isFile()); + + QDateTime dateTime; +#ifndef QT_NO_DATESTRING + dateTime = QLocale::c().toDateTime(tokens.at(1), QLatin1String("MM-dd-yy hh:mmAP")); + if (dateTime.date().year() < 1971) { + dateTime.setDate(QDate(dateTime.date().year() + 100, + dateTime.date().month(), + dateTime.date().day())); + } +#endif + + info->setLastModified(dateTime); + +} + +bool QFtpDTP::parseDir(const QByteArray &buffer, const QString &userName, QUrlInfo *info) +{ + if (buffer.isEmpty()) + return false; + + QString bufferStr = QString::fromLatin1(buffer).trimmed(); + + // Unix style FTP servers + QRegExp unixPattern(QLatin1String("^([\\-dl])([a-zA-Z\\-]{9,9})\\s+\\d+\\s+(\\S*)\\s+" + "(\\S*)\\s+(\\d+)\\s+(\\S+\\s+\\S+\\s+\\S+)\\s+(\\S.*)")); + if (unixPattern.indexIn(bufferStr) == 0) { + _q_parseUnixDir(unixPattern.capturedTexts(), userName, info); + return true; + } + + // DOS style FTP servers + QRegExp dosPattern(QLatin1String("^(\\d\\d-\\d\\d-\\d\\d\\d?\\d?\\ \\ \\d\\d:\\d\\d[AP]M)\\s+" + "(|\\d+)\\s+(\\S.*)$")); + if (dosPattern.indexIn(bufferStr) == 0) { + _q_parseDosDir(dosPattern.capturedTexts(), userName, info); + return true; + } + + // Unsupported + return false; +} + +void QFtpDTP::socketConnected() +{ + bytesDone = 0; +#if defined(QFTPDTP_DEBUG) + qDebug("QFtpDTP::connectState(CsConnected)"); +#endif + emit connectState(QFtpDTP::CsConnected); +} + +void QFtpDTP::socketReadyRead() +{ + if (!socket) + return; + + if (pi->currentCommand().isEmpty()) { + socket->close(); +#if defined(QFTPDTP_DEBUG) + qDebug("QFtpDTP::connectState(CsClosed)"); +#endif + emit connectState(QFtpDTP::CsClosed); + return; + } + + if (pi->abortState == QFtpPI::AbortStarted) { + // discard data + socket->readAll(); + return; + } + + if (pi->currentCommand().startsWith(QLatin1String("LIST"))) { + while (socket->canReadLine()) { + QUrlInfo i; + QByteArray line = socket->readLine(); +#if defined(QFTPDTP_DEBUG) + qDebug("QFtpDTP read (list): '%s'", line.constData()); +#endif + if (parseDir(line, QLatin1String(""), &i)) { + emit listInfo(i); + } else { + // some FTP servers don't return a 550 if the file or directory + // does not exist, but rather write a text to the data socket + // -- try to catch these cases + if (line.endsWith("No such file or directory\r\n")) + err = QString::fromLatin1(line); + } + } + } else { + if (!is_ba && data.dev) { + do { + QByteArray ba; + ba.resize(socket->bytesAvailable()); + qint64 bytesRead = socket->read(ba.data(), ba.size()); + if (bytesRead < 0) { + // a read following a readyRead() signal will + // never fail. + return; + } + ba.resize(bytesRead); + bytesDone += bytesRead; +#if defined(QFTPDTP_DEBUG) + qDebug("QFtpDTP read: %lli bytes (total %lli bytes)", bytesRead, bytesDone); +#endif + if (data.dev) // make sure it wasn't deleted in the slot + data.dev->write(ba); + emit dataTransferProgress(bytesDone, bytesTotal); + + // Need to loop; dataTransferProgress is often connected to + // slots that update the GUI (e.g., progress bar values), and + // if events are processed, more data may have arrived. + } while (socket->bytesAvailable()); + } else { +#if defined(QFTPDTP_DEBUG) + qDebug("QFtpDTP readyRead: %lli bytes available (total %lli bytes read)", + bytesAvailable(), bytesDone); +#endif + emit dataTransferProgress(bytesDone+socket->bytesAvailable(), bytesTotal); + emit readyRead(); + } + } +} + +void QFtpDTP::socketError(QAbstractSocket::SocketError e) +{ + if (e == QTcpSocket::HostNotFoundError) { +#if defined(QFTPDTP_DEBUG) + qDebug("QFtpDTP::connectState(CsHostNotFound)"); +#endif + emit connectState(QFtpDTP::CsHostNotFound); + } else if (e == QTcpSocket::ConnectionRefusedError) { +#if defined(QFTPDTP_DEBUG) + qDebug("QFtpDTP::connectState(CsConnectionRefused)"); +#endif + emit connectState(QFtpDTP::CsConnectionRefused); + } +} + +void QFtpDTP::socketConnectionClosed() +{ + if (!is_ba && data.dev) { + clearData(); + } + + bytesFromSocket = socket->readAll(); +#if defined(QFTPDTP_DEBUG) + qDebug("QFtpDTP::connectState(CsClosed)"); +#endif + emit connectState(QFtpDTP::CsClosed); +} + +void QFtpDTP::socketBytesWritten(qint64 bytes) +{ + bytesDone += bytes; +#if defined(QFTPDTP_DEBUG) + qDebug("QFtpDTP::bytesWritten(%lli)", bytesDone); +#endif + emit dataTransferProgress(bytesDone, bytesTotal); + if (callWriteData) + writeData(); +} + +void QFtpDTP::setupSocket() +{ + socket = listener.nextPendingConnection(); + socket->setObjectName(QLatin1String("QFtpDTP Active state socket")); + connect(socket, SIGNAL(connected()), SLOT(socketConnected())); + connect(socket, SIGNAL(readyRead()), SLOT(socketReadyRead())); + connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), SLOT(socketError(QAbstractSocket::SocketError))); + connect(socket, SIGNAL(disconnected()), SLOT(socketConnectionClosed())); + connect(socket, SIGNAL(bytesWritten(qint64)), SLOT(socketBytesWritten(qint64))); + + listener.close(); +} + +void QFtpDTP::clearData() +{ + is_ba = false; + data.dev = 0; +} + +/********************************************************************** + * + * QFtpPI implemenatation + * + *********************************************************************/ +QFtpPI::QFtpPI(QObject *parent) : + QObject(parent), + rawCommand(false), + transferConnectionExtended(true), + dtp(this), + commandSocket(0), + state(Begin), abortState(None), + currentCmd(QString()), + waitForDtpToConnect(false), + waitForDtpToClose(false) +{ + commandSocket.setObjectName(QLatin1String("QFtpPI_socket")); + connect(&commandSocket, SIGNAL(hostFound()), + SLOT(hostFound())); + connect(&commandSocket, SIGNAL(connected()), + SLOT(connected())); + connect(&commandSocket, SIGNAL(disconnected()), + SLOT(connectionClosed())); + connect(&commandSocket, SIGNAL(readyRead()), + SLOT(readyRead())); + connect(&commandSocket, SIGNAL(error(QAbstractSocket::SocketError)), + SLOT(error(QAbstractSocket::SocketError))); + + connect(&dtp, SIGNAL(connectState(int)), + SLOT(dtpConnectState(int))); +} + +void QFtpPI::connectToHost(const QString &host, quint16 port) +{ + emit connectState(QFtp::HostLookup); +#ifndef QT_NO_BEARERMANAGEMENT + //copy network session down to the socket & DTP + commandSocket.setProperty("_q_networksession", property("_q_networksession")); + dtp.setProperty("_q_networksession", property("_q_networksession")); +#endif + commandSocket.connectToHost(host, port); +} + +/* + Sends the sequence of commands \a cmds to the FTP server. When the commands + are all done the finished() signal is emitted. When an error occurs, the + error() signal is emitted. + + If there are pending commands in the queue this functions returns false and + the \a cmds are not added to the queue; otherwise it returns true. +*/ +bool QFtpPI::sendCommands(const QStringList &cmds) +{ + if (!pendingCommands.isEmpty()) + return false; + + if (commandSocket.state() != QTcpSocket::ConnectedState || state!=Idle) { + emit error(QFtp::NotConnected, QFtp::tr("Not connected")); + return true; // there are no pending commands + } + + pendingCommands = cmds; + startNextCmd(); + return true; +} + +void QFtpPI::clearPendingCommands() +{ + pendingCommands.clear(); + dtp.abortConnection(); + currentCmd.clear(); + state = Idle; +} + +void QFtpPI::abort() +{ + pendingCommands.clear(); + + if (abortState != None) + // ABOR already sent + return; + + abortState = AbortStarted; +#if defined(QFTPPI_DEBUG) + qDebug("QFtpPI send: ABOR"); +#endif + commandSocket.write("ABOR\r\n", 6); + + if (currentCmd.startsWith(QLatin1String("STOR "))) + dtp.abortConnection(); +} + +void QFtpPI::hostFound() +{ + emit connectState(QFtp::Connecting); +} + +void QFtpPI::connected() +{ + state = Begin; +#if defined(QFTPPI_DEBUG) +// qDebug("QFtpPI state: %d [connected()]", state); +#endif + // try to improve performance by setting TCP_NODELAY + commandSocket.setSocketOption(QAbstractSocket::LowDelayOption, 1); + + emit connectState(QFtp::Connected); +} + +void QFtpPI::connectionClosed() +{ + commandSocket.close(); + emit connectState(QFtp::Unconnected); +} + +void QFtpPI::delayedCloseFinished() +{ + emit connectState(QFtp::Unconnected); +} + +void QFtpPI::error(QAbstractSocket::SocketError e) +{ + if (e == QTcpSocket::HostNotFoundError) { + emit connectState(QFtp::Unconnected); + emit error(QFtp::HostNotFound, + QFtp::tr("Host %1 not found").arg(commandSocket.peerName())); + } else if (e == QTcpSocket::ConnectionRefusedError) { + emit connectState(QFtp::Unconnected); + emit error(QFtp::ConnectionRefused, + QFtp::tr("Connection refused to host %1").arg(commandSocket.peerName())); + } else if (e == QTcpSocket::SocketTimeoutError) { + emit connectState(QFtp::Unconnected); + emit error(QFtp::ConnectionRefused, + QFtp::tr("Connection timed out to host %1").arg(commandSocket.peerName())); + } +} + +void QFtpPI::readyRead() +{ + if (waitForDtpToClose) + return; + + while (commandSocket.canReadLine()) { + // read line with respect to line continuation + QString line = QString::fromLatin1(commandSocket.readLine()); + if (replyText.isEmpty()) { + if (line.length() < 3) { + // protocol error + return; + } + const int lowerLimit[3] = {1,0,0}; + const int upperLimit[3] = {5,5,9}; + for (int i=0; i<3; i++) { + replyCode[i] = line[i].digitValue(); + if (replyCode[i]upperLimit[i]) { + // protocol error + return; + } + } + } + QString endOfMultiLine; + endOfMultiLine[0] = '0' + replyCode[0]; + endOfMultiLine[1] = '0' + replyCode[1]; + endOfMultiLine[2] = '0' + replyCode[2]; + endOfMultiLine[3] = QLatin1Char(' '); + QString lineCont(endOfMultiLine); + lineCont[3] = QLatin1Char('-'); + QString lineLeft4 = line.left(4); + + while (lineLeft4 != endOfMultiLine) { + if (lineLeft4 == lineCont) + replyText += line.mid(4); // strip 'xyz-' + else + replyText += line; + if (!commandSocket.canReadLine()) + return; + line = QString::fromLatin1(commandSocket.readLine()); + lineLeft4 = line.left(4); + } + replyText += line.mid(4); // strip reply code 'xyz ' + if (replyText.endsWith(QLatin1String("\r\n"))) + replyText.chop(2); + + if (processReply()) + replyText = QLatin1String(""); + } +} + +/* + Process a reply from the FTP server. + + Returns true if the reply was processed or false if the reply has to be + processed at a later point. +*/ +bool QFtpPI::processReply() +{ +#if defined(QFTPPI_DEBUG) +// qDebug("QFtpPI state: %d [processReply() begin]", state); + if (replyText.length() < 400) + qDebug("QFtpPI recv: %d %s", 100*replyCode[0]+10*replyCode[1]+replyCode[2], replyText.toLatin1().constData()); + else + qDebug("QFtpPI recv: %d (text skipped)", 100*replyCode[0]+10*replyCode[1]+replyCode[2]); +#endif + + int replyCodeInt = 100*replyCode[0] + 10*replyCode[1] + replyCode[2]; + + // process 226 replies ("Closing Data Connection") only when the data + // connection is really closed to avoid short reads of the DTP + if (replyCodeInt == 226 || (replyCodeInt == 250 && currentCmd.startsWith(QLatin1String("RETR")))) { + if (dtp.state() != QTcpSocket::UnconnectedState) { + waitForDtpToClose = true; + return false; + } + } + + switch (abortState) { + case AbortStarted: + abortState = WaitForAbortToFinish; + break; + case WaitForAbortToFinish: + abortState = None; + return true; + default: + break; + } + + // get new state + static const State table[5] = { + /* 1yz 2yz 3yz 4yz 5yz */ + Waiting, Success, Idle, Failure, Failure + }; + switch (state) { + case Begin: + if (replyCode[0] == 1) { + return true; + } else if (replyCode[0] == 2) { + state = Idle; + emit finished(QFtp::tr("Connected to host %1").arg(commandSocket.peerName())); + break; + } + // reply codes not starting with 1 or 2 are not handled. + return true; + case Waiting: + if (static_cast(replyCode[0]) < 0 || replyCode[0] > 5) + state = Failure; + else +#if defined(Q_OS_IRIX) && defined(Q_CC_GNU) + { + // work around a crash on 64 bit gcc IRIX + State *t = (State *) table; + state = t[replyCode[0] - 1]; + } +#else + if (replyCodeInt == 202) + state = Failure; + else + state = table[replyCode[0] - 1]; +#endif + break; + default: + // ignore unrequested message + return true; + } +#if defined(QFTPPI_DEBUG) +// qDebug("QFtpPI state: %d [processReply() intermediate]", state); +#endif + + // special actions on certain replies + emit rawFtpReply(replyCodeInt, replyText); + if (rawCommand) { + rawCommand = false; + } else if (replyCodeInt == 227) { + // 227 Entering Passive Mode (h1,h2,h3,h4,p1,p2) + // rfc959 does not define this response precisely, and gives + // both examples where the parenthesis are used, and where + // they are missing. We need to scan for the address and host + // info. + QRegExp addrPortPattern(QLatin1String("(\\d+),(\\d+),(\\d+),(\\d+),(\\d+),(\\d+)")); + if (addrPortPattern.indexIn(replyText) == -1) { +#if defined(QFTPPI_DEBUG) + qDebug("QFtp: bad 227 response -- address and port information missing"); +#endif + // this error should be reported + } else { + QStringList lst = addrPortPattern.capturedTexts(); + QString host = lst[1] + QLatin1Char('.') + lst[2] + QLatin1Char('.') + lst[3] + QLatin1Char('.') + lst[4]; + quint16 port = (lst[5].toUInt() << 8) + lst[6].toUInt(); + waitForDtpToConnect = true; + dtp.connectToHost(host, port); + } + } else if (replyCodeInt == 229) { + // 229 Extended Passive mode OK (|||10982|) + int portPos = replyText.indexOf(QLatin1Char('(')); + if (portPos == -1) { +#if defined(QFTPPI_DEBUG) + qDebug("QFtp: bad 229 response -- port information missing"); +#endif + // this error should be reported + } else { + ++portPos; + QChar delimiter = replyText.at(portPos); + QStringList epsvParameters = replyText.mid(portPos).split(delimiter); + + waitForDtpToConnect = true; + dtp.connectToHost(commandSocket.peerAddress().toString(), + epsvParameters.at(3).toInt()); + } + + } else if (replyCodeInt == 230) { + if (currentCmd.startsWith(QLatin1String("USER ")) && pendingCommands.count()>0 && + pendingCommands.first().startsWith(QLatin1String("PASS "))) { + // no need to send the PASS -- we are already logged in + pendingCommands.pop_front(); + } + // 230 User logged in, proceed. + emit connectState(QFtp::LoggedIn); + } else if (replyCodeInt == 213) { + // 213 File status. + if (currentCmd.startsWith(QLatin1String("SIZE "))) + dtp.setBytesTotal(replyText.simplified().toLongLong()); + } else if (replyCode[0]==1 && currentCmd.startsWith(QLatin1String("STOR "))) { + dtp.waitForConnection(); + dtp.writeData(); + } + + // react on new state + switch (state) { + case Begin: + // should never happen + break; + case Success: + // success handling + state = Idle; + // no break! + case Idle: + if (dtp.hasError()) { + emit error(QFtp::UnknownError, dtp.errorMessage()); + dtp.clearError(); + } + startNextCmd(); + break; + case Waiting: + // do nothing + break; + case Failure: + // If the EPSV or EPRT commands fail, replace them with + // the old PASV and PORT instead and try again. + if (currentCmd.startsWith(QLatin1String("EPSV"))) { + transferConnectionExtended = false; + pendingCommands.prepend(QLatin1String("PASV\r\n")); + } else if (currentCmd.startsWith(QLatin1String("EPRT"))) { + transferConnectionExtended = false; + pendingCommands.prepend(QLatin1String("PORT\r\n")); + } else { + emit error(QFtp::UnknownError, replyText); + } + if (state != Waiting) { + state = Idle; + startNextCmd(); + } + break; + } +#if defined(QFTPPI_DEBUG) +// qDebug("QFtpPI state: %d [processReply() end]", state); +#endif + return true; +} + +/* + Starts next pending command. Returns false if there are no pending commands, + otherwise it returns true. +*/ +bool QFtpPI::startNextCmd() +{ + if (waitForDtpToConnect) + // don't process any new commands until we are connected + return true; + +#if defined(QFTPPI_DEBUG) + if (state != Idle) + qDebug("QFtpPI startNextCmd: Internal error! QFtpPI called in non-Idle state %d", state); +#endif + if (pendingCommands.isEmpty()) { + currentCmd.clear(); + emit finished(replyText); + return false; + } + currentCmd = pendingCommands.first(); + + // PORT and PASV are edited in-place, depending on whether we + // should try the extended transfer connection commands EPRT and + // EPSV. The PORT command also triggers setting up a listener, and + // the address/port arguments are edited in. + QHostAddress address = commandSocket.localAddress(); + if (currentCmd.startsWith(QLatin1String("PORT"))) { + if ((address.protocol() == QTcpSocket::IPv6Protocol) && transferConnectionExtended) { + int port = dtp.setupListener(address); + currentCmd = QLatin1String("EPRT |"); + currentCmd += (address.protocol() == QTcpSocket::IPv4Protocol) ? QLatin1Char('1') : QLatin1Char('2'); + currentCmd += QLatin1Char('|') + address.toString() + QLatin1Char('|') + QString::number(port); + currentCmd += QLatin1Char('|'); + } else if (address.protocol() == QTcpSocket::IPv4Protocol) { + int port = dtp.setupListener(address); + QString portArg; + quint32 ip = address.toIPv4Address(); + portArg += QString::number((ip & 0xff000000) >> 24); + portArg += QLatin1Char(',') + QString::number((ip & 0xff0000) >> 16); + portArg += QLatin1Char(',') + QString::number((ip & 0xff00) >> 8); + portArg += QLatin1Char(',') + QString::number(ip & 0xff); + portArg += QLatin1Char(',') + QString::number((port & 0xff00) >> 8); + portArg += QLatin1Char(',') + QString::number(port & 0xff); + + currentCmd = QLatin1String("PORT "); + currentCmd += portArg; + } else { + // No IPv6 connection can be set up with the PORT + // command. + return false; + } + + currentCmd += QLatin1String("\r\n"); + } else if (currentCmd.startsWith(QLatin1String("PASV"))) { + if ((address.protocol() == QTcpSocket::IPv6Protocol) && transferConnectionExtended) + currentCmd = QLatin1String("EPSV\r\n"); + } + + pendingCommands.pop_front(); +#if defined(QFTPPI_DEBUG) + qDebug("QFtpPI send: %s", currentCmd.left(currentCmd.length()-2).toLatin1().constData()); +#endif + state = Waiting; + commandSocket.write(currentCmd.toLatin1()); + return true; +} + +void QFtpPI::dtpConnectState(int s) +{ + switch (s) { + case QFtpDTP::CsClosed: + if (waitForDtpToClose) { + // there is an unprocessed reply + if (processReply()) + replyText = QLatin1String(""); + else + return; + } + waitForDtpToClose = false; + readyRead(); + return; + case QFtpDTP::CsConnected: + waitForDtpToConnect = false; + startNextCmd(); + return; + case QFtpDTP::CsHostNotFound: + case QFtpDTP::CsConnectionRefused: + emit error(QFtp::ConnectionRefused, + QFtp::tr("Connection refused for data connection")); + startNextCmd(); + return; + default: + return; + } +} + +/********************************************************************** + * + * QFtpPrivate + * + *********************************************************************/ + +class QFtpPrivate +{ + Q_DECLARE_PUBLIC(QFtp) +public: + + inline QFtpPrivate(QFtp *owner) : close_waitForStateChange(false), state(QFtp::Unconnected), + transferMode(QFtp::Passive), error(QFtp::NoError), q_ptr(owner) + { } + + ~QFtpPrivate() { while (!pending.isEmpty()) delete pending.takeFirst(); } + + // private slots + void _q_startNextCommand(); + void _q_piFinished(const QString&); + void _q_piError(int, const QString&); + void _q_piConnectState(int); + void _q_piFtpReply(int, const QString&); + + int addCommand(QFtpCommand *cmd); + + QFtpPI pi; + QList pending; + bool close_waitForStateChange; + QFtp::State state; + QFtp::TransferMode transferMode; + QFtp::Error error; + QString errorString; + + QString host; + quint16 port; + QString proxyHost; + quint16 proxyPort; + QFtp *q_ptr; +}; + +int QFtpPrivate::addCommand(QFtpCommand *cmd) +{ + pending.append(cmd); + + if (pending.count() == 1) { + // don't emit the commandStarted() signal before the ID is returned + QTimer::singleShot(0, q_func(), SLOT(_q_startNextCommand())); + } + return cmd->id; +} + +/********************************************************************** + * + * QFtp implementation + * + *********************************************************************/ +/*! + \class QFtp + \brief The QFtp class provides an implementation of the client side of FTP protocol. + + \ingroup network + \inmodule QtNetwork + + + This class provides a direct interface to FTP that allows you to + have more control over the requests. However, for new + applications, it is recommended to use QNetworkAccessManager and + QNetworkReply, as those classes possess a simpler, yet more + powerful API. + + The class works asynchronously, so there are no blocking + functions. If an operation cannot be executed immediately, the + function will still return straight away and the operation will be + scheduled for later execution. The results of scheduled operations + are reported via signals. This approach depends on the event loop + being in operation. + + The operations that can be scheduled (they are called "commands" + in the rest of the documentation) are the following: + connectToHost(), login(), close(), list(), cd(), get(), put(), + remove(), mkdir(), rmdir(), rename() and rawCommand(). + + All of these commands return a unique identifier that allows you + to keep track of the command that is currently being executed. + When the execution of a command starts, the commandStarted() + signal with the command's identifier is emitted. When the command + is finished, the commandFinished() signal is emitted with the + command's identifier and a bool that indicates whether the command + finished with an error. + + In some cases, you might want to execute a sequence of commands, + e.g. if you want to connect and login to a FTP server. This is + simply achieved: + + \snippet doc/src/snippets/code/src_network_access_qftp.cpp 0 + + In this case two FTP commands have been scheduled. When the last + scheduled command has finished, a done() signal is emitted with + a bool argument that tells you whether the sequence finished with + an error. + + If an error occurs during the execution of one of the commands in + a sequence of commands, all the pending commands (i.e. scheduled, + but not yet executed commands) are cleared and no signals are + emitted for them. + + Some commands, e.g. list(), emit additional signals to report + their results. + + Example: If you want to download the INSTALL file from the Qt + FTP server, you would write this: + + \snippet doc/src/snippets/code/src_network_access_qftp.cpp 1 + + For this example the following sequence of signals is emitted + (with small variations, depending on network traffic, etc.): + + \snippet doc/src/snippets/code/src_network_access_qftp.cpp 2 + + The dataTransferProgress() signal in the above example is useful + if you want to show a \link QProgressBar progress bar \endlink to + inform the user about the progress of the download. The + readyRead() signal tells you that there is data ready to be read. + The amount of data can be queried then with the bytesAvailable() + function and it can be read with the read() or readAll() + function. + + If the login fails for the above example, the signals would look + like this: + + \snippet doc/src/snippets/code/src_network_access_qftp.cpp 3 + + You can then get details about the error with the error() and + errorString() functions. + + For file transfer, QFtp can use both active or passive mode, and + it uses passive file transfer mode by default; see the + documentation for setTransferMode() for more details about this. + + Call setProxy() to make QFtp connect via an FTP proxy server. + + The functions currentId() and currentCommand() provide more + information about the currently executing command. + + The functions hasPendingCommands() and clearPendingCommands() + allow you to query and clear the list of pending commands. + + If you are an experienced network programmer and want to have + complete control you can use rawCommand() to execute arbitrary FTP + commands. + + \warning The current version of QFtp doesn't fully support + non-Unix FTP servers. + + \sa QNetworkAccessManager, QNetworkRequest, QNetworkReply, + {FTP Example} +*/ + + +/*! + Constructs a QFtp object with the given \a parent. +*/ +QFtp::QFtp(QObject *parent) + : QObject(parent), d(new QFtpPrivate(this)) +{ + d->errorString = tr("Unknown error"); + + connect(&d->pi, SIGNAL(connectState(int)), + SLOT(_q_piConnectState(int))); + connect(&d->pi, SIGNAL(finished(QString)), + SLOT(_q_piFinished(QString))); + connect(&d->pi, SIGNAL(error(int,QString)), + SLOT(_q_piError(int,QString))); + connect(&d->pi, SIGNAL(rawFtpReply(int,QString)), + SLOT(_q_piFtpReply(int,QString))); + + connect(&d->pi.dtp, SIGNAL(readyRead()), + SIGNAL(readyRead())); + connect(&d->pi.dtp, SIGNAL(dataTransferProgress(qint64,qint64)), + SIGNAL(dataTransferProgress(qint64,qint64))); + connect(&d->pi.dtp, SIGNAL(listInfo(QUrlInfo)), + SIGNAL(listInfo(QUrlInfo))); +} + +/*! + \enum QFtp::State + + This enum defines the connection state: + + \value Unconnected There is no connection to the host. + \value HostLookup A host name lookup is in progress. + \value Connecting An attempt to connect to the host is in progress. + \value Connected Connection to the host has been achieved. + \value LoggedIn Connection and user login have been achieved. + \value Closing The connection is closing down, but it is not yet + closed. (The state will be \c Unconnected when the connection is + closed.) + + \sa stateChanged() state() +*/ +/*! + \enum QFtp::TransferMode + + FTP works with two socket connections; one for commands and + another for transmitting data. While the command connection is + always initiated by the client, the second connection can be + initiated by either the client or the server. + + This enum defines whether the client (Passive mode) or the server + (Active mode) should set up the data connection. + + \value Passive The client connects to the server to transmit its + data. + + \value Active The server connects to the client to transmit its + data. +*/ +/*! + \enum QFtp::TransferType + + This enum identifies the data transfer type used with get and + put commands. + + \value Binary The data will be transferred in Binary mode. + + \value Ascii The data will be transferred in Ascii mode and new line + characters will be converted to the local format. +*/ +/*! + \enum QFtp::Error + + This enum identifies the error that occurred. + + \value NoError No error occurred. + \value HostNotFound The host name lookup failed. + \value ConnectionRefused The server refused the connection. + \value NotConnected Tried to send a command, but there is no connection to + a server. + \value UnknownError An error other than those specified above + occurred. + + \sa error() +*/ + +/*! + \enum QFtp::Command + + This enum is used as the return value for the currentCommand() function. + This allows you to perform specific actions for particular + commands, e.g. in a FTP client, you might want to clear the + directory view when a list() command is started; in this case you + can simply check in the slot connected to the start() signal if + the currentCommand() is \c List. + + \value None No command is being executed. + \value SetTransferMode set the \link TransferMode transfer\endlink mode. + \value SetProxy switch proxying on or off. + \value ConnectToHost connectToHost() is being executed. + \value Login login() is being executed. + \value Close close() is being executed. + \value List list() is being executed. + \value Cd cd() is being executed. + \value Get get() is being executed. + \value Put put() is being executed. + \value Remove remove() is being executed. + \value Mkdir mkdir() is being executed. + \value Rmdir rmdir() is being executed. + \value Rename rename() is being executed. + \value RawCommand rawCommand() is being executed. + + \sa currentCommand() +*/ + +/*! + \fn void QFtp::stateChanged(int state) + + This signal is emitted when the state of the connection changes. + The argument \a state is the new state of the connection; it is + one of the \l State values. + + It is usually emitted in response to a connectToHost() or close() + command, but it can also be emitted "spontaneously", e.g. when the + server closes the connection unexpectedly. + + \sa connectToHost() close() state() State +*/ + +/*! + \fn void QFtp::listInfo(const QUrlInfo &i); + + This signal is emitted for each directory entry the list() command + finds. The details of the entry are stored in \a i. + + \sa list() +*/ + +/*! + \fn void QFtp::commandStarted(int id) + + This signal is emitted when processing the command identified by + \a id starts. + + \sa commandFinished() done() +*/ + +/*! + \fn void QFtp::commandFinished(int id, bool error) + + This signal is emitted when processing the command identified by + \a id has finished. \a error is true if an error occurred during + the processing; otherwise \a error is false. + + \sa commandStarted() done() error() errorString() +*/ + +/*! + \fn void QFtp::done(bool error) + + This signal is emitted when the last pending command has finished; + (it is emitted after the last command's commandFinished() signal). + \a error is true if an error occurred during the processing; + otherwise \a error is false. + + \sa commandFinished() error() errorString() +*/ + +/*! + \fn void QFtp::readyRead() + + This signal is emitted in response to a get() command when there + is new data to read. + + If you specify a device as the second argument in the get() + command, this signal is \e not emitted; instead the data is + written directly to the device. + + You can read the data with the readAll() or read() functions. + + This signal is useful if you want to process the data in chunks as + soon as it becomes available. If you are only interested in the + complete data, just connect to the commandFinished() signal and + read the data then instead. + + \sa get() read() readAll() bytesAvailable() +*/ + +/*! + \fn void QFtp::dataTransferProgress(qint64 done, qint64 total) + + This signal is emitted in response to a get() or put() request to + indicate the current progress of the download or upload. + + \a done is the amount of data that has already been transferred + and \a total is the total amount of data to be read or written. It + is possible that the QFtp class is not able to determine the total + amount of data that should be transferred, in which case \a total + is 0. (If you connect this signal to a QProgressBar, the progress + bar shows a busy indicator if the total is 0). + + \warning \a done and \a total are not necessarily the size in + bytes, since for large files these values might need to be + "scaled" to avoid overflow. + + \sa get(), put(), QProgressBar +*/ + +/*! + \fn void QFtp::rawCommandReply(int replyCode, const QString &detail); + + This signal is emitted in response to the rawCommand() function. + \a replyCode is the 3 digit reply code and \a detail is the text + that follows the reply code. + + \sa rawCommand() +*/ + +/*! + Connects to the FTP server \a host using port \a port. + + The stateChanged() signal is emitted when the state of the + connecting process changes, e.g. to \c HostLookup, then \c + Connecting, then \c Connected. + + The function does not block and returns immediately. The command + is scheduled, and its execution is performed asynchronously. The + function returns a unique identifier which is passed by + commandStarted() and commandFinished(). + + When the command is started the commandStarted() signal is + emitted. When it is finished the commandFinished() signal is + emitted. + + \sa stateChanged() commandStarted() commandFinished() +*/ +int QFtp::connectToHost(const QString &host, quint16 port) +{ + QStringList cmds; + cmds << host; + cmds << QString::number((uint)port); + int id = d->addCommand(new QFtpCommand(ConnectToHost, cmds)); + d->pi.transferConnectionExtended = true; + return id; +} + +/*! + Logs in to the FTP server with the username \a user and the + password \a password. + + The stateChanged() signal is emitted when the state of the + connecting process changes, e.g. to \c LoggedIn. + + The function does not block and returns immediately. The command + is scheduled, and its execution is performed asynchronously. The + function returns a unique identifier which is passed by + commandStarted() and commandFinished(). + + When the command is started the commandStarted() signal is + emitted. When it is finished the commandFinished() signal is + emitted. + + \sa commandStarted() commandFinished() +*/ +int QFtp::login(const QString &user, const QString &password) +{ + QStringList cmds; + cmds << (QLatin1String("USER ") + (user.isNull() ? QLatin1String("anonymous") : user) + QLatin1String("\r\n")); + cmds << (QLatin1String("PASS ") + (password.isNull() ? QLatin1String("anonymous@") : password) + QLatin1String("\r\n")); + return d->addCommand(new QFtpCommand(Login, cmds)); +} + +/*! + Closes the connection to the FTP server. + + The stateChanged() signal is emitted when the state of the + connecting process changes, e.g. to \c Closing, then \c + Unconnected. + + The function does not block and returns immediately. The command + is scheduled, and its execution is performed asynchronously. The + function returns a unique identifier which is passed by + commandStarted() and commandFinished(). + + When the command is started the commandStarted() signal is + emitted. When it is finished the commandFinished() signal is + emitted. + + \sa stateChanged() commandStarted() commandFinished() +*/ +int QFtp::close() +{ + return d->addCommand(new QFtpCommand(Close, QStringList(QLatin1String("QUIT\r\n")))); +} + +/*! + Sets the current FTP transfer mode to \a mode. The default is QFtp::Passive. + + \sa QFtp::TransferMode +*/ +int QFtp::setTransferMode(TransferMode mode) +{ + int id = d->addCommand(new QFtpCommand(SetTransferMode, QStringList())); + d->pi.transferConnectionExtended = true; + d->transferMode = mode; + return id; +} + +/*! + Enables use of the FTP proxy on host \a host and port \a + port. Calling this function with \a host empty disables proxying. + + QFtp does not support FTP-over-HTTP proxy servers. Use + QNetworkAccessManager for this. +*/ +int QFtp::setProxy(const QString &host, quint16 port) +{ + QStringList args; + args << host << QString::number(port); + return d->addCommand(new QFtpCommand(SetProxy, args)); +} + +/*! + Lists the contents of directory \a dir on the FTP server. If \a + dir is empty, it lists the contents of the current directory. + + The listInfo() signal is emitted for each directory entry found. + + The function does not block and returns immediately. The command + is scheduled, and its execution is performed asynchronously. The + function returns a unique identifier which is passed by + commandStarted() and commandFinished(). + + When the command is started the commandStarted() signal is + emitted. When it is finished the commandFinished() signal is + emitted. + + \sa listInfo() commandStarted() commandFinished() +*/ +int QFtp::list(const QString &dir) +{ + QStringList cmds; + cmds << QLatin1String("TYPE A\r\n"); + cmds << QLatin1String(d->transferMode == Passive ? "PASV\r\n" : "PORT\r\n"); + if (dir.isEmpty()) + cmds << QLatin1String("LIST\r\n"); + else + cmds << (QLatin1String("LIST ") + dir + QLatin1String("\r\n")); + return d->addCommand(new QFtpCommand(List, cmds)); +} + +/*! + Changes the working directory of the server to \a dir. + + The function does not block and returns immediately. The command + is scheduled, and its execution is performed asynchronously. The + function returns a unique identifier which is passed by + commandStarted() and commandFinished(). + + When the command is started the commandStarted() signal is + emitted. When it is finished the commandFinished() signal is + emitted. + + \sa commandStarted() commandFinished() +*/ +int QFtp::cd(const QString &dir) +{ + return d->addCommand(new QFtpCommand(Cd, QStringList(QLatin1String("CWD ") + dir + QLatin1String("\r\n")))); +} + +/*! + Downloads the file \a file from the server. + + If \a dev is 0, then the readyRead() signal is emitted when there + is data available to read. You can then read the data with the + read() or readAll() functions. + + If \a dev is not 0, the data is written directly to the device \a + dev. Make sure that the \a dev pointer is valid for the duration + of the operation (it is safe to delete it when the + commandFinished() signal is emitted). In this case the readyRead() + signal is \e not emitted and you cannot read data with the + read() or readAll() functions. + + If you don't read the data immediately it becomes available, i.e. + when the readyRead() signal is emitted, it is still available + until the next command is started. + + For example, if you want to present the data to the user as soon + as there is something available, connect to the readyRead() signal + and read the data immediately. On the other hand, if you only want + to work with the complete data, you can connect to the + commandFinished() signal and read the data when the get() command + is finished. + + The data is transferred as Binary or Ascii depending on the value + of \a type. + + The function does not block and returns immediately. The command + is scheduled, and its execution is performed asynchronously. The + function returns a unique identifier which is passed by + commandStarted() and commandFinished(). + + When the command is started the commandStarted() signal is + emitted. When it is finished the commandFinished() signal is + emitted. + + \sa readyRead() dataTransferProgress() commandStarted() + commandFinished() +*/ +int QFtp::get(const QString &file, QIODevice *dev, TransferType type) +{ + QStringList cmds; + if (type == Binary) + cmds << QLatin1String("TYPE I\r\n"); + else + cmds << QLatin1String("TYPE A\r\n"); + cmds << QLatin1String("SIZE ") + file + QLatin1String("\r\n"); + cmds << QLatin1String(d->transferMode == Passive ? "PASV\r\n" : "PORT\r\n"); + cmds << QLatin1String("RETR ") + file + QLatin1String("\r\n"); + return d->addCommand(new QFtpCommand(Get, cmds, dev)); +} + +/*! + \overload + + Writes a copy of the given \a data to the file called \a file on + the server. The progress of the upload is reported by the + dataTransferProgress() signal. + + The data is transferred as Binary or Ascii depending on the value + of \a type. + + The function does not block and returns immediately. The command + is scheduled, and its execution is performed asynchronously. The + function returns a unique identifier which is passed by + commandStarted() and commandFinished(). + + When the command is started the commandStarted() signal is + emitted. When it is finished the commandFinished() signal is + emitted. + + Since this function takes a copy of the \a data, you can discard + your own copy when this function returns. + + \sa dataTransferProgress() commandStarted() commandFinished() +*/ +int QFtp::put(const QByteArray &data, const QString &file, TransferType type) +{ + QStringList cmds; + if (type == Binary) + cmds << QLatin1String("TYPE I\r\n"); + else + cmds << QLatin1String("TYPE A\r\n"); + cmds << QLatin1String(d->transferMode == Passive ? "PASV\r\n" : "PORT\r\n"); + cmds << QLatin1String("ALLO ") + QString::number(data.size()) + QLatin1String("\r\n"); + cmds << QLatin1String("STOR ") + file + QLatin1String("\r\n"); + return d->addCommand(new QFtpCommand(Put, cmds, data)); +} + +/*! + Reads the data from the IO device \a dev, and writes it to the + file called \a file on the server. The data is read in chunks from + the IO device, so this overload allows you to transmit large + amounts of data without the need to read all the data into memory + at once. + + The data is transferred as Binary or Ascii depending on the value + of \a type. + + Make sure that the \a dev pointer is valid for the duration of the + operation (it is safe to delete it when the commandFinished() is + emitted). +*/ +int QFtp::put(QIODevice *dev, const QString &file, TransferType type) +{ + QStringList cmds; + if (type == Binary) + cmds << QLatin1String("TYPE I\r\n"); + else + cmds << QLatin1String("TYPE A\r\n"); + cmds << QLatin1String(d->transferMode == Passive ? "PASV\r\n" : "PORT\r\n"); + if (!dev->isSequential()) + cmds << QLatin1String("ALLO ") + QString::number(dev->size()) + QLatin1String("\r\n"); + cmds << QLatin1String("STOR ") + file + QLatin1String("\r\n"); + return d->addCommand(new QFtpCommand(Put, cmds, dev)); +} + +/*! + Deletes the file called \a file from the server. + + The function does not block and returns immediately. The command + is scheduled, and its execution is performed asynchronously. The + function returns a unique identifier which is passed by + commandStarted() and commandFinished(). + + When the command is started the commandStarted() signal is + emitted. When it is finished the commandFinished() signal is + emitted. + + \sa commandStarted() commandFinished() +*/ +int QFtp::remove(const QString &file) +{ + return d->addCommand(new QFtpCommand(Remove, QStringList(QLatin1String("DELE ") + file + QLatin1String("\r\n")))); +} + +/*! + Creates a directory called \a dir on the server. + + The function does not block and returns immediately. The command + is scheduled, and its execution is performed asynchronously. The + function returns a unique identifier which is passed by + commandStarted() and commandFinished(). + + When the command is started the commandStarted() signal is + emitted. When it is finished the commandFinished() signal is + emitted. + + \sa commandStarted() commandFinished() +*/ +int QFtp::mkdir(const QString &dir) +{ + return d->addCommand(new QFtpCommand(Mkdir, QStringList(QLatin1String("MKD ") + dir + QLatin1String("\r\n")))); +} + +/*! + Removes the directory called \a dir from the server. + + The function does not block and returns immediately. The command + is scheduled, and its execution is performed asynchronously. The + function returns a unique identifier which is passed by + commandStarted() and commandFinished(). + + When the command is started the commandStarted() signal is + emitted. When it is finished the commandFinished() signal is + emitted. + + \sa commandStarted() commandFinished() +*/ +int QFtp::rmdir(const QString &dir) +{ + return d->addCommand(new QFtpCommand(Rmdir, QStringList(QLatin1String("RMD ") + dir + QLatin1String("\r\n")))); +} + +/*! + Renames the file called \a oldname to \a newname on the server. + + The function does not block and returns immediately. The command + is scheduled, and its execution is performed asynchronously. The + function returns a unique identifier which is passed by + commandStarted() and commandFinished(). + + When the command is started the commandStarted() signal is + emitted. When it is finished the commandFinished() signal is + emitted. + + \sa commandStarted() commandFinished() +*/ +int QFtp::rename(const QString &oldname, const QString &newname) +{ + QStringList cmds; + cmds << QLatin1String("RNFR ") + oldname + QLatin1String("\r\n"); + cmds << QLatin1String("RNTO ") + newname + QLatin1String("\r\n"); + return d->addCommand(new QFtpCommand(Rename, cmds)); +} + +/*! + Sends the raw FTP command \a command to the FTP server. This is + useful for low-level FTP access. If the operation you wish to + perform has an equivalent QFtp function, we recommend using the + function instead of raw FTP commands since the functions are + easier and safer. + + The function does not block and returns immediately. The command + is scheduled, and its execution is performed asynchronously. The + function returns a unique identifier which is passed by + commandStarted() and commandFinished(). + + When the command is started the commandStarted() signal is + emitted. When it is finished the commandFinished() signal is + emitted. + + \sa rawCommandReply() commandStarted() commandFinished() +*/ +int QFtp::rawCommand(const QString &command) +{ + QString cmd = command.trimmed() + QLatin1String("\r\n"); + return d->addCommand(new QFtpCommand(RawCommand, QStringList(cmd))); +} + +/*! + Returns the number of bytes that can be read from the data socket + at the moment. + + \sa get() readyRead() read() readAll() +*/ +qint64 QFtp::bytesAvailable() const +{ + return d->pi.dtp.bytesAvailable(); +} + +/*! \fn qint64 QFtp::readBlock(char *data, quint64 maxlen) + + Use read() instead. +*/ + +/*! + Reads \a maxlen bytes from the data socket into \a data and + returns the number of bytes read. Returns -1 if an error occurred. + + \sa get() readyRead() bytesAvailable() readAll() +*/ +qint64 QFtp::read(char *data, qint64 maxlen) +{ + return d->pi.dtp.read(data, maxlen); +} + +/*! + Reads all the bytes available from the data socket and returns + them. + + \sa get() readyRead() bytesAvailable() read() +*/ +QByteArray QFtp::readAll() +{ + return d->pi.dtp.readAll(); +} + +/*! + Aborts the current command and deletes all scheduled commands. + + If there is an unfinished command (i.e. a command for which the + commandStarted() signal has been emitted, but for which the + commandFinished() signal has not been emitted), this function + sends an \c ABORT command to the server. When the server replies + that the command is aborted, the commandFinished() signal with the + \c error argument set to \c true is emitted for the command. Due + to timing issues, it is possible that the command had already + finished before the abort request reached the server, in which + case, the commandFinished() signal is emitted with the \c error + argument set to \c false. + + For all other commands that are affected by the abort(), no + signals are emitted. + + If you don't start further FTP commands directly after the + abort(), there won't be any scheduled commands and the done() + signal is emitted. + + \warning Some FTP servers, for example the BSD FTP daemon (version + 0.3), wrongly return a positive reply even when an abort has + occurred. For these servers the commandFinished() signal has its + error flag set to \c false, even though the command did not + complete successfully. + + \sa clearPendingCommands() +*/ +void QFtp::abort() +{ + if (d->pending.isEmpty()) + return; + + clearPendingCommands(); + d->pi.abort(); +} + +/*! + Returns the identifier of the FTP command that is being executed + or 0 if there is no command being executed. + + \sa currentCommand() +*/ +int QFtp::currentId() const +{ + if (d->pending.isEmpty()) + return 0; + return d->pending.first()->id; +} + +/*! + Returns the command type of the FTP command being executed or \c + None if there is no command being executed. + + \sa currentId() +*/ +QFtp::Command QFtp::currentCommand() const +{ + if (d->pending.isEmpty()) + return None; + return d->pending.first()->command; +} + +/*! + Returns the QIODevice pointer that is used by the FTP command to read data + from or store data to. If there is no current FTP command being executed or + if the command does not use an IO device, this function returns 0. + + This function can be used to delete the QIODevice in the slot connected to + the commandFinished() signal. + + \sa get() put() +*/ +QIODevice* QFtp::currentDevice() const +{ + if (d->pending.isEmpty()) + return 0; + QFtpCommand *c = d->pending.first(); + if (c->is_ba) + return 0; + return c->data.dev; +} + +/*! + Returns true if there are any commands scheduled that have not yet + been executed; otherwise returns false. + + The command that is being executed is \e not considered as a + scheduled command. + + \sa clearPendingCommands() currentId() currentCommand() +*/ +bool QFtp::hasPendingCommands() const +{ + return d->pending.count() > 1; +} + +/*! + Deletes all pending commands from the list of scheduled commands. + This does not affect the command that is being executed. If you + want to stop this as well, use abort(). + + \sa hasPendingCommands() abort() +*/ +void QFtp::clearPendingCommands() +{ + // delete all entires except the first one + while (d->pending.count() > 1) + delete d->pending.takeLast(); +} + +/*! + Returns the current state of the object. When the state changes, + the stateChanged() signal is emitted. + + \sa State stateChanged() +*/ +QFtp::State QFtp::state() const +{ + return d->state; +} + +/*! + Returns the last error that occurred. This is useful to find out + what went wrong when receiving a commandFinished() or a done() + signal with the \c error argument set to \c true. + + If you start a new command, the error status is reset to \c NoError. +*/ +QFtp::Error QFtp::error() const +{ + return d->error; +} + +/*! + Returns a human-readable description of the last error that + occurred. This is useful for presenting a error message to the + user when receiving a commandFinished() or a done() signal with + the \c error argument set to \c true. + + The error string is often (but not always) the reply from the + server, so it is not always possible to translate the string. If + the message comes from Qt, the string has already passed through + tr(). +*/ +QString QFtp::errorString() const +{ + return d->errorString; +} + +/*! \internal +*/ +void QFtpPrivate::_q_startNextCommand() +{ + Q_Q(QFtp); + if (pending.isEmpty()) + return; + QFtpCommand *c = pending.first(); + + error = QFtp::NoError; + errorString = QT_TRANSLATE_NOOP(QFtp, QLatin1String("Unknown error")); + + if (q->bytesAvailable()) + q->readAll(); // clear the data + emit q->commandStarted(c->id); + + // Proxy support, replace the Login argument in place, then fall + // through. + if (c->command == QFtp::Login && !proxyHost.isEmpty()) { + QString loginString = c->rawCmds.first().trimmed(); + loginString += QLatin1Char('@') + host; + if (port && port != 21) + loginString += QLatin1Char(':') + QString::number(port); + loginString += QLatin1String("\r\n"); + c->rawCmds[0] = loginString; + } + + if (c->command == QFtp::SetTransferMode) { + _q_piFinished(QLatin1String("Transfer mode set")); + } else if (c->command == QFtp::SetProxy) { + proxyHost = c->rawCmds[0]; + proxyPort = c->rawCmds[1].toUInt(); + c->rawCmds.clear(); + _q_piFinished(QLatin1String("Proxy set to ") + proxyHost + QLatin1Char(':') + QString::number(proxyPort)); + } else if (c->command == QFtp::ConnectToHost) { +#ifndef QT_NO_BEARERMANAGEMENT + //copy network session down to the PI + pi.setProperty("_q_networksession", q->property("_q_networksession")); +#endif + if (!proxyHost.isEmpty()) { + host = c->rawCmds[0]; + port = c->rawCmds[1].toUInt(); + pi.connectToHost(proxyHost, proxyPort); + } else { + pi.connectToHost(c->rawCmds[0], c->rawCmds[1].toUInt()); + } + } else { + if (c->command == QFtp::Put) { + if (c->is_ba) { + pi.dtp.setData(c->data.ba); + pi.dtp.setBytesTotal(c->data.ba->size()); + } else if (c->data.dev && (c->data.dev->isOpen() || c->data.dev->open(QIODevice::ReadOnly))) { + pi.dtp.setDevice(c->data.dev); + if (c->data.dev->isSequential()) { + pi.dtp.setBytesTotal(0); + pi.dtp.connect(c->data.dev, SIGNAL(readyRead()), SLOT(dataReadyRead())); + pi.dtp.connect(c->data.dev, SIGNAL(readChannelFinished()), SLOT(dataReadyRead())); + } else { + pi.dtp.setBytesTotal(c->data.dev->size()); + } + } + } else if (c->command == QFtp::Get) { + if (!c->is_ba && c->data.dev) { + pi.dtp.setDevice(c->data.dev); + } + } else if (c->command == QFtp::Close) { + state = QFtp::Closing; + emit q->stateChanged(state); + } + pi.sendCommands(c->rawCmds); + } +} + +/*! \internal +*/ +void QFtpPrivate::_q_piFinished(const QString&) +{ + if (pending.isEmpty()) + return; + QFtpCommand *c = pending.first(); + + if (c->command == QFtp::Close) { + // The order of in which the slots are called is arbitrary, so + // disconnect the SIGNAL-SIGNAL temporary to make sure that we + // don't get the commandFinished() signal before the stateChanged() + // signal. + if (state != QFtp::Unconnected) { + close_waitForStateChange = true; + return; + } + } + emit q_func()->commandFinished(c->id, false); + pending.removeFirst(); + + delete c; + + if (pending.isEmpty()) { + emit q_func()->done(false); + } else { + _q_startNextCommand(); + } +} + +/*! \internal +*/ +void QFtpPrivate::_q_piError(int errorCode, const QString &text) +{ + Q_Q(QFtp); + + if (pending.isEmpty()) { + qWarning("QFtpPrivate::_q_piError was called without pending command!"); + return; + } + + QFtpCommand *c = pending.first(); + + // non-fatal errors + if (c->command == QFtp::Get && pi.currentCommand().startsWith(QLatin1String("SIZE "))) { + pi.dtp.setBytesTotal(0); + return; + } else if (c->command==QFtp::Put && pi.currentCommand().startsWith(QLatin1String("ALLO "))) { + return; + } + + error = QFtp::Error(errorCode); + switch (q->currentCommand()) { + case QFtp::ConnectToHost: + errorString = QString::fromLatin1(QT_TRANSLATE_NOOP("QFtp", "Connecting to host failed:\n%1")) + .arg(text); + break; + case QFtp::Login: + errorString = QString::fromLatin1(QT_TRANSLATE_NOOP("QFtp", "Login failed:\n%1")) + .arg(text); + break; + case QFtp::List: + errorString = QString::fromLatin1(QT_TRANSLATE_NOOP("QFtp", "Listing directory failed:\n%1")) + .arg(text); + break; + case QFtp::Cd: + errorString = QString::fromLatin1(QT_TRANSLATE_NOOP("QFtp", "Changing directory failed:\n%1")) + .arg(text); + break; + case QFtp::Get: + errorString = QString::fromLatin1(QT_TRANSLATE_NOOP("QFtp", "Downloading file failed:\n%1")) + .arg(text); + break; + case QFtp::Put: + errorString = QString::fromLatin1(QT_TRANSLATE_NOOP("QFtp", "Uploading file failed:\n%1")) + .arg(text); + break; + case QFtp::Remove: + errorString = QString::fromLatin1(QT_TRANSLATE_NOOP("QFtp", "Removing file failed:\n%1")) + .arg(text); + break; + case QFtp::Mkdir: + errorString = QString::fromLatin1(QT_TRANSLATE_NOOP("QFtp", "Creating directory failed:\n%1")) + .arg(text); + break; + case QFtp::Rmdir: + errorString = QString::fromLatin1(QT_TRANSLATE_NOOP("QFtp", "Removing directory failed:\n%1")) + .arg(text); + break; + default: + errorString = text; + break; + } + + pi.clearPendingCommands(); + q->clearPendingCommands(); + emit q->commandFinished(c->id, true); + + pending.removeFirst(); + delete c; + if (pending.isEmpty()) + emit q->done(true); + else + _q_startNextCommand(); +} + +/*! \internal +*/ +void QFtpPrivate::_q_piConnectState(int connectState) +{ + state = QFtp::State(connectState); + emit q_func()->stateChanged(state); + if (close_waitForStateChange) { + close_waitForStateChange = false; + _q_piFinished(QLatin1String(QT_TRANSLATE_NOOP("QFtp", "Connection closed"))); + } +} + +/*! \internal +*/ +void QFtpPrivate::_q_piFtpReply(int code, const QString &text) +{ + if (q_func()->currentCommand() == QFtp::RawCommand) { + pi.rawCommand = true; + emit q_func()->rawCommandReply(code, text); + } +} + +/*! + Destructor. +*/ +QFtp::~QFtp() +{ + abort(); + close(); +} + +QT_END_NAMESPACE + +#include "qftp.moc" + +#include "moc_qftp.cpp" + +#endif // QT_NO_FTP diff --git a/QtFtp/qftp.h b/QtFtp/qftp.h new file mode 100644 index 0000000..fce7081 --- /dev/null +++ b/QtFtp/qftp.h @@ -0,0 +1,162 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtNetwork module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QFTP_H +#define QFTP_H + +#include +#include +//#include +#include + +QT_BEGIN_NAMESPACE + +class QFtpPrivate; + +class QFtp : public QObject +{ + Q_OBJECT + +public: + explicit QFtp(QObject *parent = 0); + virtual ~QFtp(); + + enum State { + Unconnected, + HostLookup, + Connecting, + Connected, + LoggedIn, + Closing + }; + enum Error { + NoError, + UnknownError, + HostNotFound, + ConnectionRefused, + NotConnected + }; + enum Command { + None, + SetTransferMode, + SetProxy, + ConnectToHost, + Login, + Close, + List, + Cd, + Get, + Put, + Remove, + Mkdir, + Rmdir, + Rename, + RawCommand + }; + enum TransferMode { + Active, + Passive + }; + enum TransferType { + Binary, + Ascii + }; + + int setProxy(const QString &host, quint16 port); + int connectToHost(const QString &host, quint16 port=21); + int login(const QString &user = QString(), const QString &password = QString()); + int close(); + int setTransferMode(TransferMode mode); + int list(const QString &dir = QString()); + int cd(const QString &dir); + int get(const QString &file, QIODevice *dev=0, TransferType type = Binary); + int put(const QByteArray &data, const QString &file, TransferType type = Binary); + int put(QIODevice *dev, const QString &file, TransferType type = Binary); + int remove(const QString &file); + int mkdir(const QString &dir); + int rmdir(const QString &dir); + int rename(const QString &oldname, const QString &newname); + + int rawCommand(const QString &command); + + qint64 bytesAvailable() const; + qint64 read(char *data, qint64 maxlen); + QByteArray readAll(); + + int currentId() const; + QIODevice* currentDevice() const; + Command currentCommand() const; + bool hasPendingCommands() const; + void clearPendingCommands(); + + State state() const; + + Error error() const; + QString errorString() const; + +public Q_SLOTS: + void abort(); + +Q_SIGNALS: + void stateChanged(int); + void listInfo(const QUrlInfo&); + void readyRead(); + void dataTransferProgress(qint64, qint64); + void rawCommandReply(int, const QString&); + + void commandStarted(int); + void commandFinished(int, bool); + void done(bool); + +private: + Q_DISABLE_COPY(QFtp) + QScopedPointer d; + + Q_PRIVATE_SLOT(d, void _q_startNextCommand()) + Q_PRIVATE_SLOT(d, void _q_piFinished(const QString&)) + Q_PRIVATE_SLOT(d, void _q_piError(int, const QString&)) + Q_PRIVATE_SLOT(d, void _q_piConnectState(int)) + Q_PRIVATE_SLOT(d, void _q_piFtpReply(int, const QString&)) +}; + +QT_END_NAMESPACE + +#endif // QFTP_H diff --git a/QtFtp/qurlinfo.cpp b/QtFtp/qurlinfo.cpp new file mode 100644 index 0000000..3429542 --- /dev/null +++ b/QtFtp/qurlinfo.cpp @@ -0,0 +1,728 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtNetwork module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qurlinfo.h" + +#include "qurl.h" +#include "qdir.h" +#include + +QT_BEGIN_NAMESPACE + +class QUrlInfoPrivate +{ +public: + QUrlInfoPrivate() : + permissions(0), + size(0), + isDir(false), + isFile(true), + isSymLink(false), + isWritable(true), + isReadable(true), + isExecutable(false) + {} + + QString name; + int permissions; + QString owner; + QString group; + qint64 size; + + QDateTime lastModified; + QDateTime lastRead; + bool isDir; + bool isFile; + bool isSymLink; + bool isWritable; + bool isReadable; + bool isExecutable; +}; + + +/*! + \class QUrlInfo + \brief The QUrlInfo class stores information about URLs. + + \ingroup io + \ingroup network + \inmodule QtNetwork + + The information about a URL that can be retrieved includes name(), + permissions(), owner(), group(), size(), lastModified(), + lastRead(), isDir(), isFile(), isSymLink(), isWritable(), + isReadable() and isExecutable(). + + You can create your own QUrlInfo objects passing in all the + relevant information in the constructor, and you can modify a + QUrlInfo; for each getter mentioned above there is an equivalent + setter. Note that setting values does not affect the underlying + resource that the QUrlInfo provides information about; for example + if you call setWritable(true) on a read-only resource the only + thing changed is the QUrlInfo object, not the resource. + + \sa QUrl, {FTP Example} +*/ + +/*! + \enum QUrlInfo::PermissionSpec + + This enum is used by the permissions() function to report the + permissions of a file. + + \value ReadOwner The file is readable by the owner of the file. + \value WriteOwner The file is writable by the owner of the file. + \value ExeOwner The file is executable by the owner of the file. + \value ReadGroup The file is readable by the group. + \value WriteGroup The file is writable by the group. + \value ExeGroup The file is executable by the group. + \value ReadOther The file is readable by anyone. + \value WriteOther The file is writable by anyone. + \value ExeOther The file is executable by anyone. +*/ + +/*! + Constructs an invalid QUrlInfo object with default values. + + \sa isValid() +*/ + +QUrlInfo::QUrlInfo() +{ + d = 0; +} + +/*! + Copy constructor, copies \a ui to this URL info object. +*/ + +QUrlInfo::QUrlInfo(const QUrlInfo &ui) +{ + if (ui.d) { + d = new QUrlInfoPrivate; + *d = *ui.d; + } else { + d = 0; + } +} + +/*! + Constructs a QUrlInfo object by specifying all the URL's + information. + + The information that is passed is the \a name, file \a + permissions, \a owner and \a group and the file's \a size. Also + passed is the \a lastModified date/time and the \a lastRead + date/time. Flags are also passed, specifically, \a isDir, \a + isFile, \a isSymLink, \a isWritable, \a isReadable and \a + isExecutable. +*/ + +QUrlInfo::QUrlInfo(const QString &name, int permissions, const QString &owner, + const QString &group, qint64 size, const QDateTime &lastModified, + const QDateTime &lastRead, bool isDir, bool isFile, bool isSymLink, + bool isWritable, bool isReadable, bool isExecutable) +{ + d = new QUrlInfoPrivate; + d->name = name; + d->permissions = permissions; + d->owner = owner; + d->group = group; + d->size = size; + d->lastModified = lastModified; + d->lastRead = lastRead; + d->isDir = isDir; + d->isFile = isFile; + d->isSymLink = isSymLink; + d->isWritable = isWritable; + d->isReadable = isReadable; + d->isExecutable = isExecutable; +} + + +/*! + Constructs a QUrlInfo object by specifying all the URL's + information. + + The information that is passed is the \a url, file \a + permissions, \a owner and \a group and the file's \a size. Also + passed is the \a lastModified date/time and the \a lastRead + date/time. Flags are also passed, specifically, \a isDir, \a + isFile, \a isSymLink, \a isWritable, \a isReadable and \a + isExecutable. +*/ + +QUrlInfo::QUrlInfo(const QUrl &url, int permissions, const QString &owner, + const QString &group, qint64 size, const QDateTime &lastModified, + const QDateTime &lastRead, bool isDir, bool isFile, bool isSymLink, + bool isWritable, bool isReadable, bool isExecutable) +{ + d = new QUrlInfoPrivate; + d->name = QFileInfo(url.path()).fileName(); + d->permissions = permissions; + d->owner = owner; + d->group = group; + d->size = size; + d->lastModified = lastModified; + d->lastRead = lastRead; + d->isDir = isDir; + d->isFile = isFile; + d->isSymLink = isSymLink; + d->isWritable = isWritable; + d->isReadable = isReadable; + d->isExecutable = isExecutable; +} + + +/*! + Sets the name of the URL to \a name. The name is the full text, + for example, "http://qt.nokia.com/doc/qurlinfo.html". + + If you call this function for an invalid URL info, this function + turns it into a valid one. + + \sa isValid() +*/ + +void QUrlInfo::setName(const QString &name) +{ + if (!d) + d = new QUrlInfoPrivate; + d->name = name; +} + + +/*! + If \a b is true then the URL is set to be a directory; if \a b is + false then the URL is set not to be a directory (which normally + means it is a file). (Note that a URL can refer to both a file and + a directory even though most file systems do not support this.) + + If you call this function for an invalid URL info, this function + turns it into a valid one. + + \sa isValid() +*/ + +void QUrlInfo::setDir(bool b) +{ + if (!d) + d = new QUrlInfoPrivate; + d->isDir = b; +} + + +/*! + If \a b is true then the URL is set to be a file; if \b is false + then the URL is set not to be a file (which normally means it is a + directory). (Note that a URL can refer to both a file and a + directory even though most file systems do not support this.) + + If you call this function for an invalid URL info, this function + turns it into a valid one. + + \sa isValid() +*/ + +void QUrlInfo::setFile(bool b) +{ + if (!d) + d = new QUrlInfoPrivate; + d->isFile = b; +} + + +/*! + Specifies that the URL refers to a symbolic link if \a b is true + and that it does not if \a b is false. + + If you call this function for an invalid URL info, this function + turns it into a valid one. + + \sa isValid() +*/ + +void QUrlInfo::setSymLink(bool b) +{ + if (!d) + d = new QUrlInfoPrivate; + d->isSymLink = b; +} + + +/*! + Specifies that the URL is writable if \a b is true and not + writable if \a b is false. + + If you call this function for an invalid URL info, this function + turns it into a valid one. + + \sa isValid() +*/ + +void QUrlInfo::setWritable(bool b) +{ + if (!d) + d = new QUrlInfoPrivate; + d->isWritable = b; +} + + +/*! + Specifies that the URL is readable if \a b is true and not + readable if \a b is false. + + If you call this function for an invalid URL info, this function + turns it into a valid one. + + \sa isValid() +*/ + +void QUrlInfo::setReadable(bool b) +{ + if (!d) + d = new QUrlInfoPrivate; + d->isReadable = b; +} + +/*! + Specifies that the owner of the URL is called \a s. + + If you call this function for an invalid URL info, this function + turns it into a valid one. + + \sa isValid() +*/ + +void QUrlInfo::setOwner(const QString &s) +{ + if (!d) + d = new QUrlInfoPrivate; + d->owner = s; +} + +/*! + Specifies that the owning group of the URL is called \a s. + + If you call this function for an invalid URL info, this function + turns it into a valid one. + + \sa isValid() +*/ + +void QUrlInfo::setGroup(const QString &s) +{ + if (!d) + d = new QUrlInfoPrivate; + d->group = s; +} + +/*! + Specifies the \a size of the URL. + + If you call this function for an invalid URL info, this function + turns it into a valid one. + + \sa isValid() +*/ + +void QUrlInfo::setSize(qint64 size) +{ + if (!d) + d = new QUrlInfoPrivate; + d->size = size; +} + +/*! + Specifies that the URL has access permissions \a p. + + If you call this function for an invalid URL info, this function + turns it into a valid one. + + \sa isValid() +*/ + +void QUrlInfo::setPermissions(int p) +{ + if (!d) + d = new QUrlInfoPrivate; + d->permissions = p; +} + +/*! + Specifies that the object the URL refers to was last modified at + \a dt. + + If you call this function for an invalid URL info, this function + turns it into a valid one. + + \sa isValid() +*/ + +void QUrlInfo::setLastModified(const QDateTime &dt) +{ + if (!d) + d = new QUrlInfoPrivate; + d->lastModified = dt; +} + +/*! + \since 4.4 + + Specifies that the object the URL refers to was last read at + \a dt. + + If you call this function for an invalid URL info, this function + turns it into a valid one. + + \sa isValid() +*/ + +void QUrlInfo::setLastRead(const QDateTime &dt) +{ + if (!d) + d = new QUrlInfoPrivate; + d->lastRead = dt; +} + +/*! + Destroys the URL info object. +*/ + +QUrlInfo::~QUrlInfo() +{ + delete d; +} + +/*! + Assigns the values of \a ui to this QUrlInfo object. +*/ + +QUrlInfo &QUrlInfo::operator=(const QUrlInfo &ui) +{ + if (ui.d) { + if (!d) + d= new QUrlInfoPrivate; + *d = *ui.d; + } else { + delete d; + d = 0; + } + return *this; +} + +/*! + Returns the file name of the URL. + + \sa isValid() +*/ + +QString QUrlInfo::name() const +{ + if (!d) + return QString(); + return d->name; +} + +/*! + Returns the permissions of the URL. You can use the \c PermissionSpec flags + to test for certain permissions. + + \sa isValid() +*/ + +int QUrlInfo::permissions() const +{ + if (!d) + return 0; + return d->permissions; +} + +/*! + Returns the owner of the URL. + + \sa isValid() +*/ + +QString QUrlInfo::owner() const +{ + if (!d) + return QString(); + return d->owner; +} + +/*! + Returns the group of the URL. + + \sa isValid() +*/ + +QString QUrlInfo::group() const +{ + if (!d) + return QString(); + return d->group; +} + +/*! + Returns the size of the URL. + + \sa isValid() +*/ + +qint64 QUrlInfo::size() const +{ + if (!d) + return 0; + return d->size; +} + +/*! + Returns the last modification date of the URL. + + \sa isValid() +*/ + +QDateTime QUrlInfo::lastModified() const +{ + if (!d) + return QDateTime(); + return d->lastModified; +} + +/*! + Returns the date when the URL was last read. + + \sa isValid() +*/ + +QDateTime QUrlInfo::lastRead() const +{ + if (!d) + return QDateTime(); + return d->lastRead; +} + +/*! + Returns true if the URL is a directory; otherwise returns false. + + \sa isValid() +*/ + +bool QUrlInfo::isDir() const +{ + if (!d) + return false; + return d->isDir; +} + +/*! + Returns true if the URL is a file; otherwise returns false. + + \sa isValid() +*/ + +bool QUrlInfo::isFile() const +{ + if (!d) + return false; + return d->isFile; +} + +/*! + Returns true if the URL is a symbolic link; otherwise returns false. + + \sa isValid() +*/ + +bool QUrlInfo::isSymLink() const +{ + if (!d) + return false; + return d->isSymLink; +} + +/*! + Returns true if the URL is writable; otherwise returns false. + + \sa isValid() +*/ + +bool QUrlInfo::isWritable() const +{ + if (!d) + return false; + return d->isWritable; +} + +/*! + Returns true if the URL is readable; otherwise returns false. + + \sa isValid() +*/ + +bool QUrlInfo::isReadable() const +{ + if (!d) + return false; + return d->isReadable; +} + +/*! + Returns true if the URL is executable; otherwise returns false. + + \sa isValid() +*/ + +bool QUrlInfo::isExecutable() const +{ + if (!d) + return false; + return d->isExecutable; +} + +/*! + Returns true if \a i1 is greater than \a i2; otherwise returns + false. The objects are compared by the value, which is specified + by \a sortBy. This must be one of QDir::Name, QDir::Time or + QDir::Size. +*/ + +bool QUrlInfo::greaterThan(const QUrlInfo &i1, const QUrlInfo &i2, + int sortBy) +{ + switch (sortBy) { + case QDir::Name: + return i1.name() > i2.name(); + case QDir::Time: + return i1.lastModified() > i2.lastModified(); + case QDir::Size: + return i1.size() > i2.size(); + default: + return false; + } +} + +/*! + Returns true if \a i1 is less than \a i2; otherwise returns false. + The objects are compared by the value, which is specified by \a + sortBy. This must be one of QDir::Name, QDir::Time or QDir::Size. +*/ + +bool QUrlInfo::lessThan(const QUrlInfo &i1, const QUrlInfo &i2, + int sortBy) +{ + return !greaterThan(i1, i2, sortBy); +} + +/*! + Returns true if \a i1 equals to \a i2; otherwise returns false. + The objects are compared by the value, which is specified by \a + sortBy. This must be one of QDir::Name, QDir::Time or QDir::Size. +*/ + +bool QUrlInfo::equal(const QUrlInfo &i1, const QUrlInfo &i2, + int sortBy) +{ + switch (sortBy) { + case QDir::Name: + return i1.name() == i2.name(); + case QDir::Time: + return i1.lastModified() == i2.lastModified(); + case QDir::Size: + return i1.size() == i2.size(); + default: + return false; + } +} + +/*! + Returns true if this QUrlInfo is equal to \a other; otherwise + returns false. + + \sa lessThan(), equal() +*/ + +bool QUrlInfo::operator==(const QUrlInfo &other) const +{ + if (!d) + return other.d == 0; + if (!other.d) + return false; + + return (d->name == other.d->name && + d->permissions == other.d->permissions && + d->owner == other.d->owner && + d->group == other.d->group && + d->size == other.d->size && + d->lastModified == other.d->lastModified && + d->lastRead == other.d->lastRead && + d->isDir == other.d->isDir && + d->isFile == other.d->isFile && + d->isSymLink == other.d->isSymLink && + d->isWritable == other.d->isWritable && + d->isReadable == other.d->isReadable && + d->isExecutable == other.d->isExecutable); +} + +/*! + \fn bool QUrlInfo::operator!=(const QUrlInfo &other) const + \since 4.2 + + Returns true if this QUrlInfo is not equal to \a other; otherwise + returns false. + + \sa lessThan(), equal() +*/ + +/*! + Returns true if the URL info is valid; otherwise returns false. + Valid means that the QUrlInfo contains real information. + + You should always check if the URL info is valid before relying on + the values. +*/ +bool QUrlInfo::isValid() const +{ + return d != 0; +} + +QT_END_NAMESPACE diff --git a/QtFtp/qurlinfo.h b/QtFtp/qurlinfo.h new file mode 100644 index 0000000..d8399a9 --- /dev/null +++ b/QtFtp/qurlinfo.h @@ -0,0 +1,121 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtNetwork module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QURLINFO_H +#define QURLINFO_H + +#include +#include +#include + +QT_BEGIN_NAMESPACE + +class QUrl; +class QUrlInfoPrivate; + +class QUrlInfo +{ +public: + enum PermissionSpec { + ReadOwner = 00400, WriteOwner = 00200, ExeOwner = 00100, + ReadGroup = 00040, WriteGroup = 00020, ExeGroup = 00010, + ReadOther = 00004, WriteOther = 00002, ExeOther = 00001 }; + + QUrlInfo(); + QUrlInfo(const QUrlInfo &ui); + QUrlInfo(const QString &name, int permissions, const QString &owner, + const QString &group, qint64 size, const QDateTime &lastModified, + const QDateTime &lastRead, bool isDir, bool isFile, bool isSymLink, + bool isWritable, bool isReadable, bool isExecutable); + QUrlInfo(const QUrl &url, int permissions, const QString &owner, + const QString &group, qint64 size, const QDateTime &lastModified, + const QDateTime &lastRead, bool isDir, bool isFile, bool isSymLink, + bool isWritable, bool isReadable, bool isExecutable); + QUrlInfo &operator=(const QUrlInfo &ui); + virtual ~QUrlInfo(); + + virtual void setName(const QString &name); + virtual void setDir(bool b); + virtual void setFile(bool b); + virtual void setSymLink(bool b); + virtual void setOwner(const QString &s); + virtual void setGroup(const QString &s); + virtual void setSize(qint64 size); + virtual void setWritable(bool b); + virtual void setReadable(bool b); + virtual void setPermissions(int p); + virtual void setLastModified(const QDateTime &dt); + void setLastRead(const QDateTime &dt); + + bool isValid() const; + + QString name() const; + int permissions() const; + QString owner() const; + QString group() const; + qint64 size() const; + QDateTime lastModified() const; + QDateTime lastRead() const; + bool isDir() const; + bool isFile() const; + bool isSymLink() const; + bool isWritable() const; + bool isReadable() const; + bool isExecutable() const; + + static bool greaterThan(const QUrlInfo &i1, const QUrlInfo &i2, + int sortBy); + static bool lessThan(const QUrlInfo &i1, const QUrlInfo &i2, + int sortBy); + static bool equal(const QUrlInfo &i1, const QUrlInfo &i2, + int sortBy); + + bool operator==(const QUrlInfo &i) const; + inline bool operator!=(const QUrlInfo &i) const + { return !operator==(i); } + +private: + QUrlInfoPrivate *d; +}; + +QT_END_NAMESPACE + +#endif // QURLINFO_H