[发明专利]一种动态加载性质的CIM内存库生成方法有效
申请号: | 201510119258.8 | 申请日: | 2015-03-18 |
公开(公告)号: | CN104809008A | 公开(公告)日: | 2015-07-29 |
发明(设计)人: | 高雅;杜双育;王红斌;范颖;谢善益;杨强;王彬;马金宝 | 申请(专利权)人: | 广东电网有限责任公司电力科学研究院;威海欣智信息科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 广州知友专利商标代理有限公司 44104 | 代理人: | 周克佑 |
地址: | 510080 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明的目的在于提供一种动态加载性质的CIM内存库生成方法,包括如下步骤:第一步:生成元信息代码;第二步:生成性质信息代码;第三步:定位性质;第四步:设置性质取值;以及,第五步:获取性质取值。本方法不对每个CIM性质生成存储变量和bool型的取值设置标识,也不通过占内存较多的映射表来存储性质取值,而是通过一种基于数组的动态寻址算法来实现所有性质的存储和访问,对于重量级稀疏型电力模型,节省内存特别明显。 | ||
搜索关键词: | 一种 动态 加载 性质 cim 内存 生成 方法 | ||
【主权项】:
一种动态加载性质的CIM内存库生成方法,其特征在于包括如下步骤:第一步:生成元信息代码a)将CIM模型中的每一个类生成相同名称的代码类;b)为所述代码类中的属性生成代码中的字段,所述字段的名称和数据类型与CIM模型相同;c)为所有字段生成缺省值静态常量,CIM模型里有缺省值的常量取值为缺省值,没有缺省值的常量取值为空;d)为每个字段生成一个整型性质静态索引号,从0开始;第二步:生成性质信息代码在每个所述代码类中定义一个性质取值数组,用于动态存储性质取值,数组的大小初始为0,即空数组,在加载数据的时候根据实际有取值的性质个数动态调整数组的大小;另外根据CIM模型中的类中性质的个数,定义一个或多个long型数据标识,用来管理性质是否被设置取值以及配合在性质取值数组中定位性质;第三步:定位性质,计算出用于在性质取值数组中定位性质的动态索引号;动态索引号的计算过程为:根据性质静态索引号找到对应的bit位,如果此bit位为1,计算出在此bit位之前的bit位为1的个数,就是此性质的动态索引号;对于bit位为0的性质,不存在动态索引号;第四步:设置性质取值设置性质取值首先判断long型标识中,性质的静态索引号所对应的bit位的取值;如果取值为1,则根据第三步找到相应的存储单元,将性质取值存放到存储单元中;如果对应的bit为取值为0,说明当前数组中没有对应的存储单元,需要扩充性质取值数组;首先开辟新的性质取值数组,大小比原来大1,然后将当前性质静态索引号之前所有有值的性质按顺序拷贝到新的性质取值数组,再将当前性质要设置的值放到性质取值数组的下一个元素,最后将当前性质静态索引号之后的全部有值的性质按顺序拷贝到新性质取值数组中;将对象中记录数组的引用指向新的性质取值数组,如果必要,释放旧的性质取值数组的内存;第五步:获取性质取值如果long型标识中表明进行读取访问的性质没有设置值,即bit位为0,如果性质定义了缺省值就返回缺省值,否则返回空。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东电网有限责任公司电力科学研究院;威海欣智信息科技有限公司,未经广东电网有限责任公司电力科学研究院;威海欣智信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510119258.8/,转载请声明来源钻瓜专利网。