CCIMXDesktop
 
Loading...
Searching...
No Matches
DataSinker.h
1#pragma once
2
3#include "DataHeader.h"
4#include <QByteArray>
5#include <QObject>
6#include <QString>
8class DataSinker : public QObject {
10 Q_OBJECT
11public:
12 DataSinker(DataHeaderUtils::PayloadType t, QObject* parent = nullptr)
13 : QObject(parent)
14 , type(t) {
15 }
16 virtual ~DataSinker() = default;
17 virtual QString provide_name() = 0;
18 virtual void consume_name(const QString& name) = 0;
19 virtual qint64 id_generator() = 0;
20 virtual QByteArray requestChunkForEncoding(quint64 offset, quint64 bytesForRead) = 0;
21 virtual quint64 size() = 0;
22 virtual bool receiveEnd() = 0;
23 virtual bool consumeChunkBuffer(const QByteArray& chunk) = 0;
24 virtual void initMemoryBuffer(const QByteArray& chunk) = 0;
25 virtual void sendEnd() = 0;
26 virtual void resetSelf() = 0;
27
28 DataHeaderUtils::PayloadType sinkerType() const {
29 return type;
30 }
31signals:
32 void accept_data_receive();
33
34private:
35 DataHeaderUtils::PayloadType type;
36};
Definition DataProtocolizedController.h:10
Definition DataSinker.h:8