饭中淹的避难所~~~~~

偶尔来避难的地方~

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  94 随笔 :: 0 文章 :: 257 评论 :: 0 Trackbacks

PROJECT SUNSHINE(日光)

数据字段类型:
 有/无符号整数(32/64)
 单精度浮点数
 双精度浮点数
 【数据协议】引用
 字符串
 容器(可用于所有以上类型)
  键索引容器
  线性数组
  ID分配与索引容器
  ID分配与索引以及键值互斥和索引容器

概念:

【数据协议】
 用于描述一个抽象的数据聚合,这个聚合里包含各种属性,以及属性的类型、名字、唯一ID和缺省值。

【数据类】
 用于描述一个具体的数据聚合体,确定了该聚合体将实现那些数据协议中的字段(字段集),并覆盖哪些字段的缺省值(覆盖集)。
 它的数据描述依赖于【数据协议】。

【数据对象】
 从数据类生成的一个拥有数据类描述的字段的一个内存块。实际用于数据聚合体在内存中的实例存在。
 内存块初始化时为一页,可以容纳整个数据类描述的字段。
 在新加入数据字段时,实时分配最小可容纳的页,作为增长需要。如一页超过初始页面大小,则生成新的页面。

【数据字段存储管理器】
 帮助数据对象规划内存块中的字段分布,以适应数据类和数据协议的改动。

 每次进行数据类和数据协议的改动时,将生成拥有如下指令的更改脚本:
  1- 断开某字段与其内存块位置的连接
  2- 连接新的字段与原有的断开连接的内存块位置,或者分配新的内存块位置。
  3- 检查数据对象的内存块的某一页,如果全部被断开连接,则该页从数据对象中回收。

【数据处理器】
 用于描述一个具体的数据处理方法。
 它以【数据协议】作为它的输入输出参数表。
 它会对其中的字段做附加的描述,如缺省值覆盖,输入、输出、输入输出或者不使用(不使用默认输出缺省值)
 而且,它其中包含有一系列的逻辑操作和计算操作,用于通过输入内容生成输出内容。

【统一对象模型】
 通过【数据协议】来进行处理方法和对象描述的统一,就称为在Sunshine中的【同一对象模型】。


数据处理器中的部分术语:
【元素】
 一个【数据协议】的实现者,用于在处理流程图中进行流程描述,以及输入输出。


【协议展开】
 将【数据协议】中的【数据协议引用】字段展开成【数据协议】的元素,以供输入输出。

【执行域】
 在进行逻辑判断时,需要改变方法的执行方向时,采用的一种将区域的元素着色,以生成一个执行方向的方法。

【数据转换】
 在处理流程图中,为了流程图的整体性全局性,在连接不同类型的输入输出时,将进行数据转换。
 当遇到不兼容的数据转换,将会产生一个转换警告,并使用目标输入上的缺省值,以期望处理流程可以继续执行。

【全局对象引用】
 用于将预定义的全局对象引用,导入到流程图中使用。(置于流程图的TOP位置,输入置于流程图的LEFT位置,输出置于流程图的RIGHT位置)


数据协议可能出现的实现者:

 1- 数据类
 2- 数据处理器
 3- 底层组件(用C\C++\C#实现的底层组件,用于SUNSHINE和底层的交互)
  A- 数据库映射
  B- 网络封包
  C- 数据源(XML)
  D- 复杂算法的计算密集型处理
  E- 除以上列出外的其他暂未预料到的处理


SUNSHINE的入口点

 1- 初始化的入口点,SUNSHINE将执行一个全局的初始化。
 2- 事件入口点,SUNSHINE所有的日常数据处理的执行都源于事件入口点。
  事件入口点由SUNSHINE使用者和底层提供者预先商定一个【数据协议】
  然后由SUNSHINE使用者通过【数据协议】创建预定名字的【数据处理器】
  底层提供者在事件发生时,依照【数据协议】调用预定名字的【数据处理器】
 3- 结束入口点,SUNSHINE将执行全局的对象回收。

 


 

posted on 2011-05-19 08:11 饭中淹 阅读(493) 评论(0)  编辑 收藏 引用 所属分类: 游戏服务器数据算法分析

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理