#ifndef BYTEREADER_H
#define BYTEREADER_H

#include <QObject>
#include <QState>
#include <QIODevice>

class ByteReader : public QState
{
Q_OBJECT
public:
    explicit ByteReader(QIODevice *device, QState *parent);

    bool hasError() const;
    void configure( char *buffer, quint32 len);

private slots:
    void onReadNextBytes();
    void onError();
    void onDone();

signals:
    void startRead( );
    void readDone( );
    void readError( );

private:
    QIODevice *m_device;
    char *m_buffer;
    quint32 m_length;
    quint32 m_offset;
    bool m_hasError;
};

#endif // BYTEREADER_H

