添加ExecuteNode
This commit is contained in:
parent
d96793fa99
commit
c18aad62b3
|
@ -572,10 +572,6 @@ LogicalResult CompareNode::execute()
|
|||
|
||||
void CompareNode::insert(std::shared_ptr<LogicalNode> node, int index /*= -1*/)
|
||||
{
|
||||
if (this->children().size())
|
||||
return;
|
||||
|
||||
LogicalNode::insert(node, index);
|
||||
}
|
||||
|
||||
QList<std::shared_ptr<LogicalNode>> CompareNode::getForwards() const
|
||||
|
@ -589,11 +585,11 @@ bool CompareNode::fallback(std::shared_ptr<LogicalNode> node, LogicalResult ste)
|
|||
|
||||
std::shared_ptr<Serializable> CompareNode::newDefault() const
|
||||
{
|
||||
return std::make_shared<CompareNode>();
|
||||
return std::make_shared<CompareNode>(_bind_kernal);
|
||||
}
|
||||
|
||||
CompareNode::CompareNode()
|
||||
: LogicalNode(NodeKind::COMPARENODE) {
|
||||
CompareNode::CompareNode(std::shared_ptr<MapKernal> ins)
|
||||
: LogicalNode(NodeKind::COMPARENODE), _bind_kernal(ins) {
|
||||
_data_map[u8"×óÖµ"] = std::make_shared<GeneralData>();
|
||||
_data_map[u8"ÓÒÖµ"] = std::make_shared<GeneralData>();
|
||||
}
|
||||
|
@ -620,6 +616,7 @@ QHash<QString, std::shared_ptr<TopicData>> CompareNode::outputList() const
|
|||
return QHash<QString, std::shared_ptr<TopicData>>();
|
||||
}
|
||||
|
||||
#include <QJsonObject>
|
||||
void CompareNode::recoveryFrom(const QJsonObject& obj)
|
||||
{
|
||||
auto vala = obj[u8"ValL"];
|
||||
|
@ -627,6 +624,12 @@ void CompareNode::recoveryFrom(const QJsonObject& obj)
|
|||
|
||||
_data_map[u8"×óÖµ"]->recoveryFrom(vala.toObject());
|
||||
_data_map[u8"ÓÒÖµ"]->recoveryFrom(valb.toObject());
|
||||
|
||||
QString delegate_name = "";
|
||||
STRING_PEAK(delegate_name);
|
||||
|
||||
auto deins = _bind_kernal->getCompare(delegate_name);
|
||||
bindDelegate(deins);
|
||||
}
|
||||
|
||||
void CompareNode::saveTo(QJsonObject& obj) const
|
||||
|
@ -637,6 +640,13 @@ void CompareNode::saveTo(QJsonObject& obj) const
|
|||
|
||||
obj[u8"ValL"] = vala;
|
||||
obj[u8"ValR"] = valb;
|
||||
|
||||
QString delegate_name = "";
|
||||
if (_bind_delegate) {
|
||||
delegate_name = _bind_delegate->name();
|
||||
}
|
||||
|
||||
STRING_SAVE(delegate_name);
|
||||
}
|
||||
|
||||
#include <QJsonDocument>
|
||||
|
@ -707,3 +717,100 @@ std::shared_ptr<TopicData> ConvertDelegate::convert(const QList<std::shared_ptr<
|
|||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
ExecuteNode::ExecuteNode(std::shared_ptr<MapKernal> ins)
|
||||
: LogicalNode(NodeKind::ACTIONNODE), _bind_kernal(ins) {
|
||||
}
|
||||
|
||||
QString ExecuteNode::delegateName() const
|
||||
{
|
||||
if (_bind_delegate)
|
||||
return _bind_delegate->typeName();
|
||||
return "";
|
||||
}
|
||||
|
||||
void ExecuteNode::bindDelegate(std::shared_ptr<ExecuteDelegate> ins)
|
||||
{
|
||||
_bind_delegate = ins;
|
||||
}
|
||||
|
||||
QList<std::shared_ptr<LogicalNode>> ExecuteNode::getForwards() const
|
||||
{
|
||||
return QList<std::shared_ptr<LogicalNode>>();
|
||||
}
|
||||
|
||||
QString ExecuteNode::typeName() const
|
||||
{
|
||||
return QString("Ö´Ðнڵã<%1>(%2)").arg(delegateName()).arg(getID());
|
||||
}
|
||||
|
||||
QHash<QString, std::shared_ptr<TopicData>> ExecuteNode::inputList() const
|
||||
{
|
||||
if (_bind_delegate)
|
||||
return _bind_delegate->inputList();
|
||||
return QHash<QString, std::shared_ptr<TopicData>>();
|
||||
}
|
||||
|
||||
QHash<QString, std::shared_ptr<TopicData>> ExecuteNode::outputList() const
|
||||
{
|
||||
if (_bind_delegate)
|
||||
return _bind_delegate->outputList();
|
||||
return QHash<QString, std::shared_ptr<TopicData>>();
|
||||
}
|
||||
|
||||
void ExecuteNode::insert(std::shared_ptr<LogicalNode> node, int index /*= -1*/)
|
||||
{
|
||||
}
|
||||
|
||||
void ExecuteNode::reset()
|
||||
{
|
||||
if (_bind_delegate)
|
||||
_bind_delegate->reset();
|
||||
}
|
||||
|
||||
LogicalResult ExecuteNode::execute()
|
||||
{
|
||||
if (_bind_delegate)
|
||||
return _bind_delegate->execute();
|
||||
return LogicalResult::FAILURE;
|
||||
}
|
||||
|
||||
bool ExecuteNode::fallback(std::shared_ptr<LogicalNode> node, LogicalResult ste)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
std::shared_ptr<Serializable> ExecuteNode::newDefault() const
|
||||
{
|
||||
return std::make_shared<ExecuteNode>(this->_bind_kernal);
|
||||
}
|
||||
|
||||
#include <QJsonObject>
|
||||
void ExecuteNode::recoveryFrom(const QJsonObject& obj)
|
||||
{
|
||||
QString delegate_name = "";
|
||||
STRING_PEAK(delegate_name);
|
||||
|
||||
auto de_ins = _bind_kernal->getExecute(delegate_name);
|
||||
this->bindDelegate(de_ins);
|
||||
|
||||
if (obj.contains("data_json")) {
|
||||
auto delegate_json = obj["data_json"].toObject();
|
||||
de_ins->recoveryFrom(delegate_json);
|
||||
}
|
||||
}
|
||||
|
||||
void ExecuteNode::saveTo(QJsonObject& obj) const
|
||||
{
|
||||
QString delegate_name = "";
|
||||
if (_bind_delegate)
|
||||
delegate_name = _bind_delegate->typeName();
|
||||
|
||||
STRING_SAVE(delegate_name);
|
||||
|
||||
if (_bind_delegate) {
|
||||
QJsonObject data_json;
|
||||
this->_bind_delegate->saveTo(data_json);
|
||||
obj["data_json"] = data_json;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -320,7 +320,7 @@ private:
|
|||
void _set_parent_node(std::weak_ptr<LogicalNode> pnode);
|
||||
|
||||
public:
|
||||
LogicalNode(NodeKind t = NodeKind::ACTIONNODE);
|
||||
LogicalNode(NodeKind t);
|
||||
virtual ~LogicalNode() = default;
|
||||
|
||||
/// <summary>
|
||||
|
@ -442,7 +442,7 @@ enum class IO_TYPE {
|
|||
class COMPONENTBASIC_EXPORT BehaviorMapNode : public LogicalNode {
|
||||
private:
|
||||
std::shared_ptr<MapKernal> _bind_kernal;
|
||||
QString _map_name;
|
||||
QString _map_name = u8"δÃüÃûÐÐΪÊ÷";
|
||||
|
||||
/// <summary>
|
||||
/// µØÍ¼±äÁ¿±í
|
||||
|
@ -537,20 +537,14 @@ public:
|
|||
QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
||||
QString typeName() const override;
|
||||
|
||||
LogicalResult execute() override;
|
||||
QHash<QString, std::shared_ptr<TopicData>> inputList() const override;
|
||||
QHash<QString, std::shared_ptr<TopicData>> outputList() const override;
|
||||
|
||||
void reset() override;
|
||||
LogicalResult execute() override;
|
||||
bool fallback(std::shared_ptr<LogicalNode> node, LogicalResult ste) override;
|
||||
|
||||
/// <summary>
|
||||
/// 新实例
|
||||
/// </summary>
|
||||
/// <param name="p"></param>
|
||||
/// <returns></returns>
|
||||
virtual std::shared_ptr<Serializable> newDefault() const override;
|
||||
|
||||
void recoveryFrom(const QJsonObject& obj) override;
|
||||
void saveTo(QJsonObject& obj) const override;
|
||||
};
|
||||
|
@ -568,20 +562,14 @@ public:
|
|||
QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
||||
QString typeName() const override;
|
||||
|
||||
LogicalResult execute() override;
|
||||
QHash<QString, std::shared_ptr<TopicData>> inputList() const override;
|
||||
QHash<QString, std::shared_ptr<TopicData>> outputList() const override;
|
||||
|
||||
void reset() override;
|
||||
LogicalResult execute() override;
|
||||
bool fallback(std::shared_ptr<LogicalNode> node, LogicalResult ste) override;
|
||||
|
||||
/// <summary>
|
||||
/// 新实例
|
||||
/// </summary>
|
||||
/// <param name="p"></param>
|
||||
/// <returns></returns>
|
||||
virtual std::shared_ptr<Serializable> newDefault() const override;
|
||||
|
||||
void recoveryFrom(const QJsonObject& obj) override;
|
||||
void saveTo(QJsonObject& obj) const override;
|
||||
};
|
||||
|
@ -596,22 +584,16 @@ private:
|
|||
public:
|
||||
ParallelNode();
|
||||
|
||||
QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
||||
QString typeName() const override;
|
||||
|
||||
QHash<QString, std::shared_ptr<TopicData>> inputList() const override;
|
||||
QHash<QString, std::shared_ptr<TopicData>> outputList() const override;
|
||||
|
||||
QString typeName() const override;
|
||||
|
||||
QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
||||
void reset() override;
|
||||
LogicalResult execute() override;
|
||||
bool fallback(std::shared_ptr<LogicalNode> node, LogicalResult ste) override;
|
||||
|
||||
LogicalResult execute() override;
|
||||
void reset() override;
|
||||
|
||||
/// <summary>
|
||||
/// 新实例
|
||||
/// </summary>
|
||||
/// <param name="p"></param>
|
||||
/// <returns></returns>
|
||||
virtual std::shared_ptr<Serializable> newDefault() const override;
|
||||
void recoveryFrom(const QJsonObject& obj) override;
|
||||
void saveTo(QJsonObject& obj) const override;
|
||||
|
@ -622,34 +604,60 @@ public:
|
|||
/// </summary>
|
||||
class COMPONENTBASIC_EXPORT CompareNode : public LogicalNode {
|
||||
private:
|
||||
std::shared_ptr<MapKernal> _bind_kernal;
|
||||
|
||||
std::shared_ptr<CompareDelegate> _bind_delegate;
|
||||
QHash<QString, std::shared_ptr<TopicData>> _data_map;
|
||||
|
||||
public:
|
||||
CompareNode();
|
||||
CompareNode(std::shared_ptr<MapKernal> kernal);
|
||||
|
||||
QString delegateName() const;
|
||||
void bindDelegate(std::shared_ptr<CompareDelegate> ins);
|
||||
|
||||
virtual QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
||||
QString typeName() const override;
|
||||
|
||||
QHash<QString, std::shared_ptr<TopicData>> inputList() const override;
|
||||
QHash<QString, std::shared_ptr<TopicData>> outputList() const override;
|
||||
|
||||
virtual void insert(std::shared_ptr<LogicalNode> node, int index /*= -1*/) override;
|
||||
|
||||
QString typeName() const override;
|
||||
|
||||
virtual QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
||||
void reset() override;
|
||||
LogicalResult execute() override;
|
||||
virtual bool fallback(std::shared_ptr<LogicalNode> node, LogicalResult ste) override;
|
||||
|
||||
virtual std::shared_ptr<Serializable> newDefault() const override;
|
||||
void recoveryFrom(const QJsonObject& obj) override;
|
||||
void saveTo(QJsonObject& obj) const override;
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Ö´Ðнڵã
|
||||
/// </summary>
|
||||
class COMPONENTBASIC_EXPORT ExecuteNode : public LogicalNode {
|
||||
private:
|
||||
std::shared_ptr<MapKernal> _bind_kernal;
|
||||
std::shared_ptr<ExecuteDelegate> _bind_delegate;
|
||||
|
||||
public:
|
||||
ExecuteNode(std::shared_ptr<MapKernal> kernal);
|
||||
|
||||
QString delegateName() const;
|
||||
void bindDelegate(std::shared_ptr<ExecuteDelegate> ins);
|
||||
|
||||
virtual QList<std::shared_ptr<LogicalNode>> getForwards() const override;
|
||||
QString typeName() const override;
|
||||
|
||||
QHash<QString, std::shared_ptr<TopicData>> inputList() const override;
|
||||
QHash<QString, std::shared_ptr<TopicData>> outputList() const override;
|
||||
|
||||
virtual void insert(std::shared_ptr<LogicalNode> node, int index /*= -1*/) override;
|
||||
|
||||
LogicalResult execute() override;
|
||||
void reset() override;
|
||||
LogicalResult execute() override;
|
||||
virtual bool fallback(std::shared_ptr<LogicalNode> node, LogicalResult ste) override;
|
||||
|
||||
/// <summary>
|
||||
/// 新实例
|
||||
/// </summary>
|
||||
/// <param name="p"></param>
|
||||
/// <returns></returns>
|
||||
virtual std::shared_ptr<Serializable> newDefault() const override;
|
||||
void recoveryFrom(const QJsonObject& obj) override;
|
||||
void saveTo(QJsonObject& obj) const override;
|
||||
|
|
Loading…
Reference in New Issue