File indexing completed on 2025-02-09 07:11:25

0001 /*
0002     This file is part of the Kasten Framework, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2008-2009 Friedrich W. H. Kossebau <kossebau@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef KASTEN_MODELENCODERFILESYSTEMEXPORTER_P_HPP
0010 #define KASTEN_MODELENCODERFILESYSTEMEXPORTER_P_HPP
0011 
0012 // lib
0013 #include "modelencoderfilesystemexporter.hpp"
0014 #include "modelencoderfilesystemexportjob.hpp"
0015 #include <abstractmodelstreamencoder.hpp>
0016 #include <abstractmodelexporter_p.hpp>
0017 
0018 namespace Kasten {
0019 
0020 class ModelEncoderFileSystemExporterPrivate : public AbstractModelExporterPrivate
0021 {
0022 public:
0023     ModelEncoderFileSystemExporterPrivate(ModelEncoderFileSystemExporter* parent,
0024                                           const QString& remoteTypeName, const QString& remoteMimeType,
0025                                           AbstractModelStreamEncoder* encoder);
0026 
0027     ~ModelEncoderFileSystemExporterPrivate() override;
0028 
0029 public: // AbstractModelExporter API
0030     AbstractExportJob* startExport(AbstractModel* model, const AbstractModelSelection* selection,
0031                                    const QUrl& url);
0032     QString modelTypeName(AbstractModel* model, const AbstractModelSelection* selection) const;
0033 
0034 public:
0035     AbstractModelStreamEncoder* encoder() const;
0036 
0037 private:
0038     AbstractModelStreamEncoder* const mEncoder;
0039 };
0040 
0041 inline ModelEncoderFileSystemExporterPrivate::ModelEncoderFileSystemExporterPrivate(ModelEncoderFileSystemExporter* parent,
0042                                                                                     const QString& remoteTypeName, const QString& remoteMimeType,
0043                                                                                     AbstractModelStreamEncoder* encoder)
0044     : AbstractModelExporterPrivate(parent, remoteTypeName, remoteMimeType)
0045     , mEncoder(encoder)
0046 {
0047 }
0048 
0049 inline ModelEncoderFileSystemExporterPrivate::~ModelEncoderFileSystemExporterPrivate() = default;
0050 
0051 inline AbstractModelStreamEncoder* ModelEncoderFileSystemExporterPrivate::encoder() const { return mEncoder; }
0052 
0053 inline AbstractExportJob* ModelEncoderFileSystemExporterPrivate::startExport(AbstractModel* model,
0054                                                                              const AbstractModelSelection* selection,
0055                                                                              const QUrl& url)
0056 {
0057     return new ModelEncoderFileSystemExportJob(model, selection, url, mEncoder);
0058 }
0059 
0060 inline QString ModelEncoderFileSystemExporterPrivate::modelTypeName(AbstractModel* model, const AbstractModelSelection* selection) const
0061 {
0062     return mEncoder->modelTypeName(model, selection);
0063 }
0064 
0065 }
0066 
0067 #endif