本文共 1062 字,大约阅读时间需要 3 分钟。
快照:
第一部分主要有五个类INode,INodeAttributes,INodeFile,INodeDirectory,INodeReference,INodeSymlink
(符号链接,可以将分布式缓存DistributedCache的文件连接到当前工作路径)
1、INode实现类类图
INodeFile继承INodeWithAdditionalFileds类, INodeDirectory继承INodeWithAdditionalFileds实现INode类
(1).INode类方法
实现INodeAttributes
INode元信息get set,其他基本的判断方法
INode类采用设计模式中的模板模式,模板方法是final类型,不可以继承,供接口调用
(2).INode类字段
只有一个字段parent,表示当前INode的父目录,父目录只能是INodeDirectory或INodeReference
2、INodeWithAdditionalFields类
(1).INodeWithAdditionalFields继承INode抽象类,重写INode的抽象方法,例如getId(), getUserName()等
特殊字段permission features
3、INodeDirectory类
属性:
children: List<Node> 把保存一组文件和其他目录
方法:
子目录相关方法 children字段的CRUD方法
特性feature相关方法
快照 SnapShot相关方法
4、INodeFile类
属性:
long header 文件头信息,保存当前文件有多少副本,文件数据块大小(内部类HeaderFormat类处理,类似INodeWithAdditionalFields的permissions处理方法)
BlockInfo [] blocks 数据块信息,保存数据块与文件,数据块与数据节点的对应关系
方法:(类图查看)
UnderConstruction特性相关方法
SnapShot相关方法
其他:header修改,获取方法;blocks数组字段的操作
5、INodeReference类
INode引用类,文件/目录被重命名或者移动其他目录的时候,会存在多条访问路径,INodeReference处理这个问题
属性:
本文转自巧克力黒 51CTO博客,原文链接:http://blog.51cto.com/10120275/1792600,如需转载请自行联系原作者