00001 #ifndef __J2K__FileFactory_HPP__ 00002 #define __J2K__FileFactory_HPP__ 00003 00004 #include <j2k/Fred/Standard.hpp> 00005 #include <j2k/Fred/Error/JErrorController.hpp> 00006 #include <j2k/Fred/JFile.hpp> 00007 00008 #include <j2k/Posix/Basic_PThread.hpp> 00009 00010 #include <j2k/Net/TFTP/TFTP_Option.hpp> 00011 #include <j2k/Net/TFTP/TFTP_Packet.hpp> 00012 00013 #include <j2k/Net/TFTP/DList_pPacket.hpp> 00014 00015 // Creates packets from the file. 00016 class FileFactory : public Basic_PThread 00017 { 00018 public: 00019 FileFactory(); 00020 virtual void run(); 00021 00022 void init(); 00023 void checkIfEmpty(); 00024 void emptyPacket(); 00025 void validPacket(); 00026 void directWrite( TFTP_Packet* pkt ); 00027 00028 private: 00029 ULONG blocksize; 00030 TFTP_Packet* packet; 00031 ULONG expectedBlockNo; 00032 00033 BOOL initialized; 00034 size_t sz; 00035 long rc; 00036 size_t length; 00037 short block; 00038 BOOL empty; 00039 00040 }; 00041 00042 #endif