发明名称 |
根据ASN.1信息动态创建数据模型的方法 |
摘要 |
本发明涉及一种根据ASN.1信息动态创建数据模型的方法,包括:建立内存池,并初始化模型树;读取信息流,获得标签类型和数据长度;根据标签类型调用不同的处理函数:1)是STRUCT类型,在模型树中插入一个子节点,表示它是一个数据结构的根,2)是简单类型,在模型树中创建一个叶节点;继续读取、处理后面的信息,直至信息流结束,得到完整的多叉树数据模型。本发明能够直接读取ASN.1数据流,将其转换为数据模型,或将数据模型转换为ASN.1信息,生成的数据模型以多叉树表示,节点的内存分配使用池式管理,保证了最后生成的多叉树最大限度利用了内存资源,并增加了一个数据属性链表,能够高效地实现目录检索和数据属性检索。 |
申请公布号 |
CN101324846A |
申请公布日期 |
2008.12.17 |
申请号 |
CN200810123563.4 |
申请日期 |
2008.07.08 |
申请人 |
国电南瑞科技股份有限公司 |
发明人 |
窦仁晖;徐石明;张海滨;倪益民;夏士兵;张春晓 |
分类号 |
G06F9/44(2006.01);G06F17/30(2006.01) |
主分类号 |
G06F9/44(2006.01) |
代理机构 |
南京纵横知识产权代理有限公司 |
代理人 |
董建林;孙永生 |
主权项 |
1、根据ASN.1信息动态创建数据模型的方法,包括:(1)、建立内存池,在内存池的头部放置模型树,并初始化模型树;(2)、读取信息流,获得标签类型和数据长度;(3)、根据标签类型调用不同的处理函数:a)如果是SEQUENCE或ARRAY类型,表示后续的数据是一个序列或一个数组,跳过去继续分析后面的信息;b)如果是STRUCT类型,表示紧接着的数据是一个结构体,每一个元素是结构体的一个成员,此时就在模型树中插入一个子节点,表示它是一个数据结构的根;c)如果是简单类型,包括BOOL、INT、UINT、BITSTRING、FLOAT、VSTR、OCTSTR、BTIME、UTF8STR或UTCTIME,就在模型树中创建一个叶节点;(4)、继续读取、处理后面的ASN.1信息,直至信息流结束,得到一个完整的多叉树数据模型。 |
地址 |
210061江苏省南京市南京高新技术开发区高新路20号 |