File indexing completed on 2024-04-21 16:32:05

0001 /* This file is part of Kairo Timer
0002 
0003    SPDX-FileCopyrightText: 2016 (c) Kevin Ottens <ervin@kde.org>
0004 
0005    SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0006 
0007 */
0008 
0009 #ifndef CIRCUITREADER_H
0010 #define CIRCUITREADER_H
0011 
0012 #include <QHash>
0013 #include <QVariant>
0014 
0015 #include "circuitmodel.h"
0016 
0017 class QIODevice;
0018 
0019 class CircuitReader
0020 {
0021 public:
0022     using MetaData = QHash<QString, QVariant>;
0023 
0024     explicit CircuitReader(QIODevice *device = nullptr);
0025     CircuitReader(CircuitReader &&other);
0026     CircuitReader &operator=(CircuitReader &&other);
0027 
0028     QIODevice *device() const;
0029 
0030     MetaData readMetaData();
0031     CircuitModel readCircuit();
0032 
0033 private:
0034     CircuitReader(const CircuitReader &) = delete;
0035     CircuitReader &operator=(const CircuitReader &) = delete;
0036 
0037     QIODevice *m_device;
0038     MetaData m_metaData;
0039 };
0040 
0041 #endif