#ifndef TOPOLOGYRECORDER_H #define TOPOLOGYRECORDER_H #include #include #include #include #include #include #include "BasicElementInfo.h" #include "breaker.h" #include "aclinesegment.h" #include "nodetoterminal.h" #include "terminal.h" #include "powertransformer.h" #include "substation.h" #include "busbarsection.h" #include "disconnector.h" #include "cimexporter.h" #include "element/branch.h" #include "element/line.h" #include "element/switch.h" #include "element/transformer.h" class TopologyRecorder:public QObject { Q_OBJECT class Type { public: enum EleType{AC=0,BREAKER,DISCONNECTOR,BS,TF}; }; public: TopologyRecorder(const QHash& elementHT, const QVector &FDSet, const QString &loadFilePath, QObject *parent=0); ~TopologyRecorder(); void showContainerInfo(QTextStream &stream); bool startWithNode(const QString& node); void exportTo(const QString& path); private: NodeToTerminal nodeToTerminal; const QHash& eleHT; QHash reachedTerminal; QVector tfs; QVector FDSet; CIMExporter cimExporter; QHash hasAdded; bool isEquipmentNeeded(const QString& substatinID); }; #endif // TOPOLOGYRECORDER_H