File indexing completed on 2024-04-21 04:57:27

0001 /*
0002  * SPDX-FileCopyrightText: 2022 Kai Uwe Broulik <kde@broulik.de>
0003  * SPDX-License-Identifier: GPL-2.0-or-later
0004  */
0005 
0006 #pragma once
0007 
0008 #include <KIO/Global>
0009 #include <KIO/WorkerBase>
0010 
0011 #include "afcclient.h"
0012 
0013 class AfcFile;
0014 
0015 class AfcFileReader
0016 {
0017 public:
0018     KIO::filesize_t size() const;
0019     void setSize(KIO::filesize_t size);
0020 
0021     KIO::WorkerResult read();
0022     bool hasMore() const;
0023     QByteArray data() const;
0024 
0025 private:
0026     friend class AfcFile;
0027     AfcFileReader(const AfcClient::Ptr &client, uint64_t handle);
0028 
0029     AfcClient::Ptr m_client;
0030     uint64_t m_handle;
0031     KIO::filesize_t m_size = 0;
0032     KIO::filesize_t m_remainingSize = 0;
0033 
0034     QByteArray m_data;
0035 };