Files

47 lines
1.6 KiB
C++

// Copyright 2022 David Romanski (Socke). All Rights Reserved.
#pragma once
#include "SocketClient.h"
class SOCKETCLIENT_API FSocketClientTCPFileHandlerThread : public FRunnable {
public:
FSocketClientTCPFileHandlerThread(USocketClientBPLibrary* socketClientP, FString clientConnectionIDP, FString ipOrDomainP, ESocketClientIPType ipTypeP,
int32 portP, USocketClientTCPClient* tcpClientP);
~FSocketClientTCPFileHandlerThread();
virtual uint32 Run() override;
void doRequestFileFromServer(FSocket* socket);
void doSendFileToServer(FSocket* socket);
void sendMessageToServer(FString message, FSocket* socket);
void triggerFileTransferOverTCPInfoEvent(FString messageP, FString clientConnectionIDP, FString filePathP, bool successP,
USocketClientBPLibrary* socketClientP, USocketClientTCPClient* tcpClientP);
void triggerTransferFileEvent(FString clientConnectionIDP, FString filePathP, USocketClientBPLibrary* socketClientP,
USocketClientTCPClient* tcpClientP, float percentP, float mbitP, int64 transferredP, int64 fileSizeP);
void sendEndMessage(FString fullFilePathP, FString tokenP, FString md5ServerP, FString clientConnectionIDP, FSocket* clientSocketP,
USocketClientBPLibrary* socketClientP, USocketClientTCPClient* tcpClientP);
FString readMessageFromServer(FSocket* socket);
private:
USocketClientBPLibrary* socketClient = nullptr;
//USocketClientBPLibrary* oldClient;
FString clientConnectionID;
FString originalIP;
FString ipOrDomain;
ESocketClientIPType ipType;
int32 port;
USocketClientTCPClient* tcpClient = nullptr;
FRunnableThread* thread = nullptr;
double waitForRead = 30;
};