宏:HIAI_REGISTER_SERIALIZE_FUNC
为用户自定义的数据类型提供自定义的序列化和反序列化机制。该宏在data_type_reg.h中定义。
即发送时将用户传输的结构体指针转化为结构体buffer和数据buffer,接受数据时,将从框架获取的结构体buffer和数据buffer反转为结构体。
使用场景:
用于从host侧到Device侧快速搬运数据,如果用户需要提升传输性能,必须使用该接口注册函数。
![](https://support.huaweicloud.com/api-matrix-atlas500app/public_sys-resources/note_3.0-zh-cn.png)
- 该接口用于从host侧到Device侧快速搬运数据使用。
- 如果用户想使用高性能传输接口,必须使用该注册函数注册序列化和反序列化函数。
函数格式
HIAI_REGISTER_SERIALIZE_FUNC(name, type, hiaiSerializeFunc, hiaiDeSerializeFunc)
参数说明
参数 |
说明 |
取值范围 |
---|---|---|
name |
注册的消息名字。 |
- |
type |
自定义数据结构的类型。 |
- |
hiaiSerializeFunc |
序列化函数。函数形式为 typedef void(*hiaiSerializeFunc)(void* inputPtr, std::string& ctrlStr, uint8_t*& dataPtr, uint32_t& dataLen); 各参数说明如下:
|
- |
hiaiDeSerializeFunc |
反序列化函数。函数形式为 typedef std::shared_ptr<void>(*hiaiDeSerializeFunc)( const char* ctrlPtr, const uint32_t& ctrlLen, const uint8_t* dataPtr, const uint32_t& dataLen); 各参数说明如下:
|
- |
返回值
返回的部分错误码请参见“错误码示例”中的“错误码”列。
错误码示例
序号 |
错误码 |
错误码描述 |
---|---|---|
1 |
HIAI_OK |
running ok |
2 |
HIAI_ENGINE_FUNCTOR_NULL |
hiai engine function is null |
3 |
HIAI_ENGINE_FUNCTOR_EXIST |
hiai engine function is existed |