LimeReport/limereport/lrexportersfactory.h
2018-06-23 00:04:28 +03:00

35 lines
978 B
C++

#ifndef LREXPORTERSFACTORY_H
#define LREXPORTERSFACTORY_H
#include "lrattribsabstractfactory.h"
#include "lrexporterintf.h"
namespace LimeReport{
typedef ReportExporterInterface* (*CreateExporter)(ReportEnginePrivate* parent);
struct ExporterAttribs{
QString m_alias;
QString m_tag;
ExporterAttribs(){}
ExporterAttribs(const QString& alias, const QString& tag):m_alias(alias),m_tag(tag){}
bool operator==( const ExporterAttribs &right) const {
return (m_alias==right.m_alias) && (m_tag==right.m_tag);
}
};
class ExportersFactory : public AttribsAbstractFactory<LimeReport::ReportExporterInterface, QString, CreateExporter, ExporterAttribs>
{
private:
friend class Singleton<ExportersFactory>;
private:
ExportersFactory(){}
~ExportersFactory(){}
ExportersFactory(const ExportersFactory&){}
ExportersFactory& operator = (const ExportersFactory&){return *this;}
};
} // namespace LimeReport
#endif // LREXPORTERSFACTORY_H