00001 // Sending Factory 00002 00003 #ifndef __J2K__TFTP_Sender_HPP__ 00004 #define __J2K__TFTP_Sender_HPP__ 00005 00006 #include <j2k/Net/TFTP/TFTP_Option.hpp> 00007 #include <j2k/Net/TFTP/TFTP_Packet.hpp> 00008 #include <j2k/Posix/Basic_PThread.hpp> 00009 00010 // Finish the Windows size modulo crapt and also in DataFactory 00011 // This class send data packet created by the Data Factory 00012 // until the queue is empty or that the window Size is reached 00013 // the window size shall be incremented by the ACK function 00014 // in TFTP_Parser. 00015 00016 class TFTP_Sender : public Basic_PThread 00017 { 00018 public: 00019 TFTP_Sender(); 00020 virtual void run(); 00021 00022 private: 00023 size_t blocksize; 00024 size_t windowsize; 00025 size_t currentDataNo; 00026 size_t currentBlockNo; 00027 void sendData(); 00028 double timeout; 00029 00030 TFTP_Packet* packet; 00031 00032 private: 00033 // Not implemented ! 00034 TFTP_Sender( const TFTP_Sender& src ); 00035 const TFTP_Sender& operator=( const TFTP_Sender& src ); 00036 }; 00037 00038 #include <j2k/Net/TFTP/TFTP_Timeout.hpp> 00039 00040 #endif