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