107 lines
2.2 KiB
C++
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
|