50 lines
1.1 KiB
C++
50 lines
1.1 KiB
C++
#ifndef CIMEXPORTER_H
|
|
#define CIMEXPORTER_H
|
|
#include <QList>
|
|
#include "element/line.h"
|
|
#include "element/switch.h"
|
|
#include "element/transformer.h"
|
|
#include <QPair>
|
|
#include <QHash>
|
|
class CIMExporter
|
|
{
|
|
struct BranchStruc
|
|
{
|
|
QString fromID;
|
|
QString toID;
|
|
int fromNum;
|
|
int toNum;
|
|
};
|
|
struct LineStru:public BranchStruc
|
|
{
|
|
Line *line;
|
|
|
|
};
|
|
struct SwitchStru:public BranchStruc
|
|
{
|
|
Switch *sw;
|
|
|
|
};
|
|
struct TransformerStru:public BranchStruc
|
|
{
|
|
Transformer *tf;
|
|
|
|
};
|
|
public:
|
|
CIMExporter();
|
|
void add(const QPair<QString,QString>& fromTo,Line* line);
|
|
void add(const QPair<QString,QString>& fromTo,Switch* sw);
|
|
void add(const QPair<QString,QString>& fromTo,Transformer* tf);
|
|
void exportTo(const QString& path);
|
|
private:
|
|
QList<LineStru> line;
|
|
QList<SwitchStru> sw;
|
|
QList<TransformerStru> tf;
|
|
QHash<QString,int> number;
|
|
int numberIt(const QString &id);//编号
|
|
template<typename T>
|
|
void idToNumber(QList<T> &s);//把所有元件的标识进行编号
|
|
};
|
|
|
|
#endif // CIMEXPORTER_H
|