1#ifndef DAABSTRACTNODEFACTORY_H
2#define DAABSTRACTNODEFACTORY_H
3#include "DAWorkFlowAPI.h"
4#include <QtCore/qglobal.h>
6#include "DAAbstractNode.h"
14class DANodeGraphicsScene;
22class DAWORKFLOW_API
DAAbstractNodeFactory :
public QObject,
public std::enable_shared_from_this< DAAbstractNodeFactory >
27 using SharedPointer = std::shared_ptr< DAAbstractNodeFactory >;
28 using WeakPointer = std::weak_ptr< DAAbstractNodeFactory >;
50 SharedPointer pointer();
102 virtual void initializNode(
const DAAbstractNode::SharedPointer& node);
119 virtual void nodeAddedToWorkflow(DAAbstractNode::SharedPointer node);
126 virtual void nodeStartRemove(DAAbstractNode::SharedPointer node);
135 virtual void nodeLinkDetached(DAAbstractNode::SharedPointer outNode,
136 const QString& outKey,
137 DAAbstractNode::SharedPointer inNode,
138 const QString& inkey);
152 virtual void saveExternInfoToXml(QDomDocument* doc, QDomElement* factoryExternElement)
const;
165 virtual void loadExternInfoFromXml(
const QDomElement* factoryExternElement);
176 virtual void workflowReady();
FCAbstractNode的工厂基类,所有自定义的node集合最后都需要提供一个工厂
Definition DAAbstractNodeFactory.h:23
virtual QString factoryDescribe() const =0
工厂具体描述
virtual QStringList getPrototypes() const =0
获取所有注册的Prototypes
virtual QString factoryName() const =0
工厂名称
virtual QString factoryPrototypes() const =0
工厂的唯一标识
virtual QList< DANodeMetaData > getNodesMetaData() const =0
获取所有类型的元数据
virtual DAAbstractNode::SharedPointer create(const DANodeMetaData &meta)=0
工厂函数,创建一个DAAbstractNode,工厂不持有FCAbstractNode的管理权
DAAbstractNodeGraphicsItem对应的QGraphicsScene,通过此scene,管理DAWorkFlow内容
Definition DANodeGraphicsScene.h:25
基本的工作流,这个也是总工厂,汇总了所有插件的工厂
Definition DAWorkFlow.h:21
序列化类都是带异常的,使用中需要处理异常
Definition AppMainWindow.cpp:44