mirror of
https://gitea.msk.dinamika-avia.ru/Constanta-Design/RRJServer.git
synced 2026-03-28 19:55:48 +03:00
180 lines
4.3 KiB
C++
180 lines
4.3 KiB
C++
#include "sendsystem.h"
|
|
#include "tools.h"
|
|
|
|
#include <QFile>
|
|
#include <QFileInfo>
|
|
#include <QThread>
|
|
|
|
|
|
|
|
SendSystem::SendSystem(QObject *)
|
|
{
|
|
|
|
}
|
|
|
|
void SendSystem::setSocket(QTcpSocket *socket)
|
|
{
|
|
this->socket = socket;
|
|
}
|
|
|
|
|
|
void SendSystem::sendDisable()
|
|
{
|
|
QDataStream stream(socket);
|
|
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
|
|
|
QByteArray data;
|
|
data = emit sigGetXmlAnswer("DISABLE");
|
|
|
|
stream << PacketType::TYPE_XMLANSWER;
|
|
stream << data;
|
|
socket->waitForBytesWritten();
|
|
}
|
|
|
|
//void SendSystem::sendXMLmsgGUItoServer(QByteArray array)
|
|
//{
|
|
// qDebug() << "SendSystem" << QThread::currentThreadId();
|
|
// QDataStream stream(socket);
|
|
// stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
|
|
|
// stream << PacketType::TYPE_XMLANSWER;
|
|
// stream << array;
|
|
// socket->waitForBytesWritten(6000);
|
|
//}
|
|
|
|
void SendSystem::sendFileBlock(QString path)
|
|
{
|
|
QDataStream stream(socket);
|
|
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
|
QString fullPath = Tools::createFullPath(path);
|
|
quint64 fileSize = 0;
|
|
int countSend = 0;
|
|
|
|
|
|
QFile file(fullPath); //Открываем файл для чтения
|
|
QFileInfo fileInfo(file);
|
|
|
|
fileSize = fileInfo.size();
|
|
|
|
stream << PacketType::TYPE_FILE; //Отправляем тип блока
|
|
stream << path << fileSize;
|
|
|
|
socket->waitForReadyRead(20);
|
|
//socket->waitForBytesWritten();
|
|
|
|
if(file.open(QFile::ReadOnly)){
|
|
while(!file.atEnd()){
|
|
QByteArray data = file.read(1025*250);
|
|
stream << data;
|
|
socket->waitForBytesWritten();
|
|
countSend++;
|
|
}
|
|
|
|
qDebug() << Tools::getTime() << "count end Final: " << countSend;
|
|
}
|
|
|
|
file.close();
|
|
|
|
emit sigSend();
|
|
//qDebug() << "Transaction after send file: " << socket->isTransactionStarted();
|
|
countSend = 0;
|
|
//socket->waitForBytesWritten();
|
|
socket->waitForReadyRead(20);
|
|
}
|
|
|
|
void SendSystem::sendFolderBlock(QString path)
|
|
{
|
|
QDataStream stream(socket);
|
|
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
|
|
|
stream << PacketType::TYPE_FOLDER;
|
|
stream << path;
|
|
emit sigSend();
|
|
socket->waitForReadyRead(100);
|
|
}
|
|
|
|
|
|
void SendSystem::sendQTConnect()
|
|
{
|
|
QByteArray container;
|
|
int numPackage = (int)PacketType::TYPE_QT;
|
|
container.append(numPackage & 0x000000ff);
|
|
container.append((numPackage >> 8) & 0x000000ff);
|
|
container.append((numPackage >> 16) & 0x000000ff);
|
|
container.append((numPackage >> 24) & 0x000000ff);
|
|
|
|
socket->write(container);
|
|
socket->waitForBytesWritten();
|
|
}
|
|
|
|
void SendSystem::sendXMLAnswer(QByteArray array)
|
|
{
|
|
QDataStream stream(socket);
|
|
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
|
|
|
stream << PacketType::TYPE_XMLANSWER;
|
|
stream << array;
|
|
|
|
socket->waitForBytesWritten();
|
|
socket->waitForReadyRead(100);
|
|
}
|
|
|
|
void SendSystem::sendFinish()
|
|
{
|
|
socket->waitForReadyRead(100);
|
|
QDataStream stream(socket);
|
|
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
|
|
|
stream << PacketType::TYPE_FINISH;
|
|
socket->waitForReadyRead(100);
|
|
}
|
|
|
|
void SendSystem::sendChangeVersion(StreamingVersionData *streamingVersion)
|
|
{
|
|
QDataStream stream(socket);
|
|
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
|
stream << PacketType::CHANGE_DATA_VERSION;
|
|
stream << streamingVersion->getViewName();
|
|
|
|
socket->waitForReadyRead(100);
|
|
}
|
|
|
|
void SendSystem::sendDeleteVersion(StreamingVersionData *streamingVersion)
|
|
{
|
|
QDataStream stream(socket);
|
|
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
|
stream << PacketType::DELETE_DATA_VERSION;
|
|
stream << streamingVersion->getViewName();
|
|
|
|
socket->waitForReadyRead(100);
|
|
}
|
|
|
|
void SendSystem::sendCopyVersion(QString versionName)
|
|
{
|
|
QDataStream stream(socket);
|
|
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
|
stream << PacketType::COPY_VERSION;
|
|
|
|
stream << versionName;
|
|
}
|
|
|
|
void SendSystem::sendGetVersion()
|
|
{
|
|
QDataStream stream(socket);
|
|
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
|
stream << PacketType::GET_VERSION;
|
|
}
|
|
|
|
void SendSystem::sendPacketType(PacketType packetType)
|
|
{
|
|
QDataStream stream(socket);
|
|
QByteArray data;
|
|
stream.setVersion(QDataStream::Qt_DefaultCompiledVersion);
|
|
|
|
stream << packetType;
|
|
}
|
|
SendSystem::~SendSystem()
|
|
{
|
|
|
|
}
|