Update 99-parser-plugin.md

This commit is contained in:
wade zhang 2024-09-25 09:01:38 +08:00 committed by GitHub
parent e0559749c0
commit c54a89b47a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 2 additions and 2 deletions

View File

@ -3,7 +3,7 @@ title: "数据解析插件"
sidebar_label: "数据解析插件"
---
接入消息中间时,如果使用 json/regex 等模式解析器无法满足解析需求,同时 UDT 也无法满足性能需求的情况,可以自定义数据解析插件。
接入消息中间时,如果使用 json/regex 等模式解析器无法满足解析需求,同时使用 UDT(自定义解析器) 也无法满足性能需求的情况,可以自定义数据解析插件。
## 插件概述
@ -27,4 +27,4 @@ taosX Parser 插件是一个要求用 C/Rust 语言开发的 C ABI 兼容动态
| const char* parser_version() | 版本,方便定位问题。 | 无 | 字符串 |
| struct parser_resp_t { <br> char* e; // Error if null. <br> void* p; // Success if contains. <br> } <br> parser_resp_t parser_new(char* ctx, uint32_t len); | 使用用户自定义配置生成解析器对象或返回错误信息。| char* ctx: 用户自定义配置字符串。<br> uint32_t len: 该字符串的二进制长度(不含 `\0`)。 | 返回值为结构体。<br> struct parser_resp_t { <br> char* e; // Error if null. <br> void* p; // Success if contains. <br> } <br> 当创建对象失败时,第一个指针 e 不为 NULL。<br> 当创建成功时e 为 NULLp 为解析器对象。 |
| const char* parser_mutate( <br> void* parser, <br> const uint8_t* in_ptr, uint32_t in_len, <br> const void* uint8_t* out_ptr, uint32_t* out_len <br> ) | 使用解析器对象对输入 payload 进行解析,返回结果为 JSON 格式 [u8] 。<br> 返回的 JSON 将使用默认的 JSON 解析器进行完全解码(展开根数组和所有的对象)。 | void* parser: parser_new 生成的对象指针。<br> const uint8_t* in_ptr, uint32_t in_len输入 Payload 的指针和 bytes 长度(不含 `\0`)。 <br> const void* uint8_t* out_ptr, uint32_t * out_len输出 JSON 字符串的指针和长度(不含 `\0`)。当 out_ptr 指向为空时,表示输出为空。当 out_ptr 不为空时应用taosx在使用完毕后应当释放该内存空间。| 字符串指针。<br> 当调用成功时,返回值为 NULL。 <br> 当调用失败时,返回错误信息字符串。 |
| void parser_free(void* parser); | 释放解析器对象内存。 | void* parser: parser_new 生成的对象指针。 | 无。 |
| void parser_free(void* parser); | 释放解析器对象内存。 | void* parser: parser_new 生成的对象指针。 | 无。 |