49class DAWORKFLOW_API
DAAbstractNode :
public std::enable_shared_from_this< DAAbstractNode >
58 using SharedPointer = std::shared_ptr< DAAbstractNode >;
59 using WeakPointer = std::weak_ptr< DAAbstractNode >;
60 using IdType = uint64_t;
71 QList< QPair< QString, DAAbstractNode::SharedPointer > >
nodes;
88 QString getNodeName()
const;
89 virtual void setNodeName(
const QString& name);
92 QString getNodePrototype()
const;
94 QString getNodeGroup()
const;
97 QIcon getIcon()
const;
98 void setIcon(
const QIcon& icon);
105 QString getNodeTooltip()
const;
106 void setNodeTooltip(
const QString& tp);
112 SharedPointer pointer();
114 IdType getID()
const;
115 void setID(
const IdType& d);
118 bool hasProperty(
const QString& k)
const;
119 void setProperty(
const QString& k,
const QVariant& v);
120 QVariant getProperty(
const QString& k,
const QVariant& defaultVal = QVariant())
const;
121 bool removeProperty(
const QString& k);
122 QList< QString > getPropertyKeys()
const;
124 const QHash< QString, QVariant >& propertys()
const;
125 QHash< QString, QVariant >& propertys();
127 virtual void saveExternInfoToXml(QDomDocument* doc, QDomElement* nodeElement,
const QVersionNumber& ver)
const;
129 virtual void loadExternInfoFromXml(
const QDomElement* nodeElement,
const QVersionNumber& ver);
131 virtual NodeType nodeType()
const;
135 QList< QString > getInputKeys()
const;
137 int getInputKeysConut()
const;
139 QList< QString > getLinkedInputKeys()
const;
141 QList< QString > getOutputKeys()
const;
143 int getOutputKeysConut()
const;
145 QList< QString > getLinkedOutputKeys()
const;
147 void addInputKey(
const QString& k);
149 void addOutputKey(
const QString& k);
151 virtual bool linkTo(
const QString& outKey, SharedPointer inNode,
const QString& inKey);
153 bool detachLink(
const QString& key);
155 bool detachInputLinks(
const QString& key);
157 bool detachOutputLinks(
const QString& key);
161 QList< SharedPointer > getInputNodes()
const;
162 QList< SharedPointer > getInputNodes(
const QString inputkey)
const;
164 QList< SharedPointer > getOutputNodes()
const;
165 QList< SharedPointer > getOutputNodes(
const QString outputkey)
const;
167 int getInputNodesCount()
const;
169 int getOutputNodesCount()
const;
172 void setInputData(
const QString& key,
const QVariant& dp);
174 void setOutputData(
const QString& key,
const QVariant& dp);
176 void removeInputKey(
const QString& key);
177 void removeAllInputKeys();
179 void removeOutputKey(
const QString& key);
180 void removeAllOutputKeys();
182 QVariant getInputData(
const QString& key)
const;
184 QVariant getOutputData(
const QString& key)
const;
186 QList< LinkInfo > getAllInputLinkInfo()
const;
188 QList< LinkInfo > getAllOutputLinkInfo()
const;
190 static IdType generateID();
194 std::shared_ptr< DAAbstractNodeFactory > factory()
const;
201 template<
typename T >
204 return std::dynamic_pointer_cast< T >(pointer());
209 virtual bool exec() = 0;
224 bool linkTo_(
const QString& outKey, SharedPointer inNode,
const QString& inKey);
228 void registFactory(
const std::shared_ptr< DAAbstractNodeFactory >& fc);
231DAWORKFLOW_API uint qHash(
const std::shared_ptr< DAAbstractNode >& ptr, uint seed = 0) noexcept;
233DAWORKFLOW_API std::size_t qHash(
const std::shared_ptr< DAAbstractNode >& ptr, std::size_t seed = 0) noexcept;
QList< QPair< QString, DAAbstractNode::SharedPointer > > nodes
链接的对象节点,内容为pair,first为对象的key,second为对象节点指针
Definition DAAbstractNode.h:71