基于TLV编码对数据结构进行编码
Encoding a data structure based on TLV encoding
我必须基于X.690编码对数据结构内的参数进行编码。假设,我的结构是:
struct Data_Struct
{
parameter1
parameter2
parameter3
}
这些参数中的一些或全部可能具有有效数据,例如parameter1
和parameter3
。那么我应该使用TLV编码仅对parameter1
和parameter3
进行编码。我必须遵循一个序列程序来遵循这个吗。比如
Check whether parameter 1 is present
If present, find the tag of the parameter from a lookup table and encode it
Check whether parameter 2 is present
If present, find the tag of the parameter from a lookup table and encode it
Check whether parameter 3 is present
If present, find the tag of the parameter from a lookup table and encode it
- 由于这个过程是重复的,我可以将其模块化吗
- 最好的方法是什么
- 有没有办法按顺序访问参数
- 如何在参数和它的标记之间建立关系
值的长度是可变的。
您需要创建一个包含成对成员和标记的表,如{&Data_Struct::parameter1, TagForParam1}
。这是不可避免的,因为编译器无法猜测该标记。
您还需要定义您认为"空"或"有效数据"的内容。这可能取决于类型。例如,+INF
是一个有效的浮点值吗?因此,添加过载函数bool IsValid(T)
现在,您可以编写一个通用例程,遍历表,检索每个参数,检查它是否有效,并将其写入输出流。
这里的一个小挑战是&Data_Struct::parameter1
的类型可能不同于&Data_Struct::parameter2
;因此,您的表必须通过包装器、指向基类的指针或类似的东西来保存它。
相关文章:
- 链表,反向函数,数据结构
- 如何使用set实现无序数据结构?
- 我们可以将数据永久保存为数据结构吗?
- C++中的可变长度数组/数据结构
- 用于存储由空格分隔的字符串的 C++/C 数据结构
- 通过 NIF 从C++返回自定义数据结构
- 编译器上的策略数据结构不起作用
- 尝试构建"lock-free"数据结构C++
- 设计将引用元素移动到开头的数据结构.C++
- 在学习数据结构之前对STL有一个了解是好的吗?
- 如何解析表示树状数据结构的字符串
- 我对数据结构、双向链表有一些问题
- googletest:测试太大的数据结构
- C++中deque数据结构的大O是什么?
- 我可以使用哪种数据结构来处理这种方式
- 将文本文件解析为树状数据结构
- C++ 中具有 O(1) 搜索时间复杂度的数据结构
- 如何在C++中编码大型复杂、恒定的数据结构
- 面试编码-将指向节点结构的指针作为参数,并返回传入数据结构的完整副本
- 基于TLV编码对数据结构进行编码