00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KIO_FLOPPY_H
00021 #define KIO_FLOPPY_H
00022
00023 #include <kio/slavebase.h>
00024 #include <kio/global.h>
00025
00026 #include "program.h"
00027
00028 #include <tqstring.h>
00029
00030 struct StatInfo
00031 {
00032 StatInfo():name(""),time(0),size(0),mode(0),freeSpace(0),isDir(false),isValid(false) {;}
00033 TQString name;
00034 time_t time;
00035 int size;
00036 int mode;
00037 int freeSpace;
00038 bool isDir:1;
00039 bool isValid:1;
00040 };
00041
00042
00043 class FloppyProtocol : public KIO::SlaveBase
00044 {
00045 public:
00046 FloppyProtocol (const TQCString &pool, const TQCString &app );
00047 virtual ~FloppyProtocol();
00048
00049 virtual void listDir( const KURL& url);
00050 virtual void stat( const KURL & url);
00051 virtual void mkdir( const KURL& url, int);
00052 virtual void del( const KURL& url, bool isfile);
00053 virtual void rename(const KURL &src, const KURL &dest, bool overwrite);
00054 virtual void get( const KURL& url );
00055 virtual void put( const KURL& url, int _mode,bool overwrite, bool _resume );
00056
00057 protected:
00058 Program *m_mtool;
00059 int readStdout();
00060 int readStderr();
00061
00062 StatInfo createStatInfo(const TQString line, bool makeStat=false, const TQString& dirName="");
00063 void createUDSEntry(const StatInfo& info, KIO::UDSEntry& entry);
00064 StatInfo _stat(const KURL& _url);
00065 int freeSpace(const KURL& url);
00066
00067 bool stopAfterError(const KURL& url, const TQString& drive);
00068 void errorMissingMToolsProgram(const TQString& name);
00069
00070 void clearBuffers();
00071 void terminateBuffers();
00072 char *m_stdoutBuffer;
00073 char *m_stderrBuffer;
00074 int m_stdoutSize;
00075 int m_stderrSize;
00076 };
00077
00078 #endif