logplus/ConvertorManager/include/ConvertorManager.h
2025-10-29 17:23:30 +08:00

107 lines
2.2 KiB
C++

/**
* @file ConvertorManager.h
* @brief 格式转换器管理器
* @date 2014-7-29
* @author: ZhouWenfei
*/
#ifndef PAI_FRAME_CONVERTORMANAGER_H__
#define PAI_FRAME_CONVERTORMANAGER_H__
#pragma warning( push ,0)
#include <algorithm>
#include <cassert>
#include <QDir>
#include <QLibrary>
#include "QList"
#include <QStringList>
#include <QCoreApplication>
#include <QChar>
#include <QVector>
#include "DepthProgress.h"
#include "ConvertorExport.h"
#include "IConvertor.h"
#include "geometryutils.h"
//#include "BaseObject.h"
//#include "ObjWelllogRound.h"
#include "ObjectIDDescription.h"
#pragma execution_character_set("utf-8")
#pragma warning( pop )
BEGIN_OSGGRAPHICS_NAMESPACE;
class CONVERTOR_EXPORT ConvertorManager
{
public:
int all;
~ConvertorManager();
/**
* @brief 获取类单一实例
*/
static ConvertorManager&GetInstance()
{
static ConvertorManager Instance;
return Instance;
}
public:
/**
* @brief 加载系统中的所有格式转换控制器
* @param[in]convtorTypeName 转换器类型
*/
void LoadAllConvertorPlugin();
void UnLoadAllConvertorPlugin();
/**
* @brief 获取能解析指定文件的所有转换器
* @param[in]filename 文件名
* @return QVector<IConvertor*> 指定文件的所有转换器的vector
*/
QVector<IConvertor*>GetSupportConvertors(const QString &filename,DiDepthProgress *pDepthProgress);
/**
* @brief 有格式转换器能支持文件的后缀名
* @return QVector<QString*> support filename all convertor vector
*/
QVector<QString>GetSupportFileExtensions();
/**
* @brief 获取所有的格式转换器
* @return QVector<IConvertor*> all convertor vector
*/
QVector<IConvertor*>GetAllConvertors();
private:
ConvertorManager();
private:
/**
* @brief 统计所有的格式转换器
*/
void StatisticalAllConvertors();
/**
* @brief 所有的格式转换器
*/
QVector<IConvertor*>m_vAllConvertors;
/**
* @brief 所有格式转换器能支持文件的后缀名
*/
QVector<QString>m_vAllSuffixFileName;
/**
* @brief 文件名支持的所有格式转换器
*/
QVector<IConvertor*>m_vFileNameSupportConvertor;
QStringList m_vConvertorNames;
};
END_OSGGRAPHICS_NAMESPACE
using namespace pai::graphics;
#endif