Guitar
SimpleQtIO.h
Go to the documentation of this file.
1 #ifndef SIMPLEQTIO_H
2 #define SIMPLEQTIO_H
3 
5 #include <QIODevice>
6 
8 private:
9  QIODevice *input_;
10 public:
11  SimpleQtReader(QIODevice *input)
12  : input_(input)
13  {
14  if (!input_) {
15  throw std::runtime_error("input device is null");
16  }
17  }
18  int read(void *ptr, size_t len)
19  {
20  if (!input_) {
21  throw std::runtime_error("input device is null");
22  }
23  if (len <= 0) {
24  return 0;
25  }
26  return input_->read(static_cast<char *>(ptr), len);
27  }
28  int64_t pos() const
29  {
30  if (!input_) {
31  throw std::runtime_error("input device is null");
32  }
33  return input_->pos();
34  }
35  void seek(int64_t pos)
36  {
37  if (!input_) {
38  throw std::runtime_error("input device is null");
39  }
40  input_->seek(pos);
41  }
42 };
43 
45 private:
46  QIODevice *output_;
47 public:
48  SimpleQtWriter(QIODevice *output)
49  : output_(output)
50  {
51  if (!output_) {
52  throw std::runtime_error("output device is null");
53  }
54  }
55  int write(void const *ptr, size_t len)
56  {
57  if (!output_) {
58  throw std::runtime_error("output device is null");
59  }
60  if (len <= 0) {
61  return 0;
62  }
63  return output_->write(static_cast<const char *>(ptr), len);
64  }
65 };
66 
67 #endif // SIMPLEQTIO_H
Definition: AbstractSimpleIO.h:7
Definition: AbstractSimpleIO.h:15
Definition: SimpleQtIO.h:7
SimpleQtReader(QIODevice *input)
Definition: SimpleQtIO.h:11
int read(void *ptr, size_t len)
Definition: SimpleQtIO.h:18
QIODevice * input_
Definition: SimpleQtIO.h:9
void seek(int64_t pos)
Definition: SimpleQtIO.h:35
int64_t pos() const
Definition: SimpleQtIO.h:28
Definition: SimpleQtIO.h:44
SimpleQtWriter(QIODevice *output)
Definition: SimpleQtIO.h:48
QIODevice * output_
Definition: SimpleQtIO.h:46
int write(void const *ptr, size_t len)
Definition: SimpleQtIO.h:55