Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
file.h
Go to the documentation of this file.
1 
8 #ifndef FILE_H_
9 #define FILE_H_
10 
11 #include <QThread>
12 #include <QFile>
13 
14 class QTextStream;
15 
16 class CAFile : public QThread {
17 public:
18  CAFile();
19  virtual ~CAFile();
20 
21  inline const int status() { return _status; }
22  inline const int progress() { return _progress; }
23  virtual const QString readableStatus() = 0;
24  void setStreamFromFile( const QString filename );
25  void setStreamToFile( const QString filename );
26  void setStreamFromDevice( QIODevice* device );
27  void setStreamToDevice( QIODevice* device );
28 
29 protected:
30  inline void setStatus( const int status ) { _status = status; }
31  inline void setProgress( const int progress ) { _progress = progress; }
32 
33  inline QTextStream *stream() { return _stream; }
34  virtual void setStream( QTextStream *stream ) { _stream = stream; }
35 
36  inline QFile *file() { return _file; }
37  inline void setFile( QFile *file ) { _file = file; }
38 
39 private:
40  int _status; // status number
41  int _progress; // percentage of the work already done
42  QTextStream *_stream;
43  QFile *_file;
44  bool _deleteStream; // whether to delete stream when destroyed.
45 };
46 
47 #endif /* FILE_H_ */