readbuffer.h
1 #include <QByteArray>
2 #include <QObject>
3 
4 class ReadBuffer : public QObject
5 {
6  Q_OBJECT
7 
8  QByteArray array;
9 
10 public:
11  ReadBuffer(QObject * parent = 0)
12  : QObject(parent)
13  {
14  }
15 
16  ~ReadBuffer()
17  {
18  }
19 
20 
21  QByteArray & append(const QByteArray & ba)
22  {
23  array.append(ba);
24  emit readyRead();
25  return array;
26  }
27 
28 
29  QByteArray read(qint64 maxSize)
30  {
31  QByteArray data = array.left(maxSize);
32  array.remove(0,maxSize);
33  return data;
34  }
35 
36  QByteArray readAll()
37  {
38  QByteArray data = array;
39  array.clear();
40  return data;
41  }
42 
43 
44  quint64 bytesAvailable()
45  {
46  return array.size();
47  }
48 
49 signals:
50  void readyRead();
51 };
52