Modified the way content passed between connectors, now content is passed via "Package" && Improved the execution flow of MSG_Input_Node && Fixed the workflow execution.
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include "imgui.h"
|
||||
#include "imnodes.h"
|
||||
#include "ID_Generator.hpp"
|
||||
#include "DLT_Utilities.hpp"
|
||||
#include "Json_Utilities.hpp"
|
||||
|
||||
// =====================================接口抽象======================================================
|
||||
@@ -20,6 +21,14 @@ public:
|
||||
CONNECTOR_TYPE_INPUT, // 输入
|
||||
} Connector_Type_Enum; // 接口类型枚举
|
||||
|
||||
typedef struct
|
||||
{
|
||||
size_t package_count = 0; // 包计数 (常规非0)
|
||||
size_t total_count = 0; // 总计数 (常规非0,不定长包时为0)
|
||||
void *p_content_mem = nullptr; // 包存储
|
||||
size_t content_size = 0; // 包大小
|
||||
} Package; // 接口包定义
|
||||
|
||||
protected:
|
||||
// ID 分配器
|
||||
Independent_ID_Generator *ID_Generator;
|
||||
@@ -29,7 +38,7 @@ protected:
|
||||
const char *socket_str; // 套接字字符串
|
||||
|
||||
std::vector<Abs_Connector *> related_connector_list; // 关联列表
|
||||
void *product; // 产物(仅输出类节点持有)
|
||||
Package pkg; // 接口包(仅输出类节点持有)
|
||||
|
||||
public:
|
||||
// 显式禁用默认构造
|
||||
@@ -50,15 +59,21 @@ public:
|
||||
// 与指定的接口断开连接
|
||||
virtual bool Disconnect_To(Abs_Connector *target);
|
||||
|
||||
// 注册产物
|
||||
virtual bool Register_Product(void *product, size_t size);
|
||||
/**
|
||||
* 注册包
|
||||
* @param p_content 目标容物指针
|
||||
* @param content_size 容物大小
|
||||
* @param count 当前包位置
|
||||
* @param total_count 包流总长度
|
||||
*/
|
||||
virtual bool Register_Package(void *p_content, size_t content_size, size_t count, size_t total_count);
|
||||
|
||||
// 获取包
|
||||
virtual const Package Get_Package(void);
|
||||
|
||||
// 获取关联接口列表
|
||||
virtual std::vector<Abs_Connector *> Get_Related_List(void);
|
||||
|
||||
// 获取产物
|
||||
virtual void *Get_Product(void);
|
||||
|
||||
// 获取ID
|
||||
virtual int Get_ID(void);
|
||||
|
||||
@@ -222,7 +237,20 @@ class MSG_Input_Node : public Abs_Node
|
||||
private:
|
||||
float node_width = 0;
|
||||
|
||||
DLT_Log log;
|
||||
|
||||
// 执行相关
|
||||
bool excute_flag = false;
|
||||
size_t private_excute_count = 0;
|
||||
size_t private_excute_end_count = 0;
|
||||
bool private_finish_flag = false;
|
||||
|
||||
public:
|
||||
// 只读引用
|
||||
const bool &finish_flag = this->private_finish_flag;
|
||||
const size_t &excute_count = this->private_excute_count;
|
||||
const size_t &excute_end_count = this->private_excute_end_count;
|
||||
|
||||
// 显式禁用默认构造
|
||||
MSG_Input_Node() = delete;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user