18 #ifndef NETFILETRANSFER_H 19 #define NETFILETRANSFER_H 25 class CFileTransferResponseMessage;
26 class CFileTransferDataMessage;
27 class CFileTransferAckMessage;
79 : m_Session(session), m_NextRequestID(1), m_LastProgressReportTime(0)
94 void StartTask(
const std::shared_ptr<CNetFileReceiveTask>& task);
101 void StartResponse(
u32 requestID,
const std::string& data);
110 Status OnFileTransferResponse(
const CFileTransferResponseMessage& message);
111 Status OnFileTransferData(
const CFileTransferDataMessage& message);
112 Status OnFileTransferAck(
const CFileTransferAckMessage& message);
139 #endif // NETFILETRANSFER_H virtual ~CNetFileReceiveTask()
Definition: NetFileTransfer.h:52
size_t packetsInFlight
Definition: NetFileTransfer.h:123
FileSendTasksMap m_FileSendTasks
Definition: NetFileTransfer.h:134
u32 m_NextRequestID
Definition: NetFileTransfer.h:128
static const size_t DEFAULT_FILE_TRANSFER_WINDOW_SIZE
Definition: NetFileTransfer.h:38
static const size_t MAX_FILE_TRANSFER_SIZE
Definition: NetFileTransfer.h:41
Interface for sessions to which messages can be sent.
Definition: NetSession.h:55
CNetFileTransferer(INetSession *session)
Definition: NetFileTransfer.h:78
static const size_t DEFAULT_FILE_TRANSFER_PACKET_SIZE
Definition: NetFileTransfer.h:32
size_t maxWindowSize
Definition: NetFileTransfer.h:122
double m_LastProgressReportTime
Definition: NetFileTransfer.h:136
uint32_t u32
Definition: types.h:39
std::map< u32, CNetFileSendTask > FileSendTasksMap
Definition: NetFileTransfer.h:133
virtual void OnComplete()=0
Called when m_Buffer contains the full received data.
Asynchronous file-receiving task.
Definition: NetFileTransfer.h:48
std::string m_Buffer
Definition: NetFileTransfer.h:69
static const size_t MiB
Definition: alignment.h:105
FileReceiveTasksMap m_FileReceiveTasks
Definition: NetFileTransfer.h:131
std::map< u32, std::shared_ptr< CNetFileReceiveTask > > FileReceiveTasksMap
Definition: NetFileTransfer.h:130
i64 Status
Error handling system.
Definition: status.h:169
u32 m_RequestID
Uniquely identifies the request within the scope of its CNetFileTransferer.
Definition: NetFileTransfer.h:65
The base class for all network messages exchanged within the game.
Definition: NetMessage.h:32
std::string buffer
Definition: NetFileTransfer.h:120
INetSession * m_Session
Definition: NetFileTransfer.h:126
Handles transferring files between clients and servers.
Definition: NetFileTransfer.h:75
size_t m_Length
Definition: NetFileTransfer.h:67
CNetFileReceiveTask()
Definition: NetFileTransfer.h:51
u32 requestID
Definition: NetFileTransfer.h:119
size_t offset
Definition: NetFileTransfer.h:121
Asynchronous file-sending task.
Definition: NetFileTransfer.h:117