Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
/home/iurt/rpm/BUILD/canorus-0.7.R1002/src/core/file.h
Go to the documentation of this file.
00001 
00008 #ifndef FILE_H_
00009 #define FILE_H_
00010 
00011 #include <QThread>
00012 #include <QFile>
00013 
00014 class QTextStream;
00015 
00016 class CAFile : public QThread {
00017 public:
00018         CAFile();
00019         virtual ~CAFile();
00020 
00021         inline const int status() { return _status; }
00022         inline const int progress() { return _progress; }
00023         virtual const QString readableStatus() = 0;
00024         void setStreamFromFile( const QString filename );
00025         void setStreamToFile( const QString filename );
00026         void setStreamFromDevice( QIODevice* device );
00027         void setStreamToDevice( QIODevice* device );
00028 
00029 protected:
00030         inline void setStatus( const int status ) { _status = status; }
00031         inline void setProgress( const int progress ) { _progress = progress; }
00032 
00033         inline QTextStream *stream() { return _stream; }
00034         virtual void setStream( QTextStream *stream ) { _stream = stream; }
00035 
00036         inline QFile *file() { return _file; }
00037         inline void setFile( QFile *file ) { _file = file; }
00038 
00039 private:
00040         int _status;          // status number
00041         int _progress;        // percentage of the work already done
00042         QTextStream *_stream;
00043         QFile *_file;
00044         bool _deleteStream;      // whether to delete stream when destroyed.
00045 };
00046 
00047 #endif /* FILE_H_ */