2021SC@SDUSC
前言
NodeHashMap是DataTree类所维护的最核心的成员变量的变量类型。NodeHashMap是接口,且在zookeeper中提供了它唯一一个实现类NodeHashMapImpl。本文主要介绍该接口和该实现类。
NodeHashMap
//把数据节点加入map,并更新digest
DataNode put(String path, DataNode node);
//把数据节点加入map,不更新digest
DataNode putWithoutDigest(String path, DataNode node);
//根据路径返回对应的数据节点
DataNode get(String path);
//根据路径移除数据节点,并返回该数据节点
DataNode remove(String path);
//返回map对应的键值对集合
Set<Map.Entry<String, DataNode>> entrySet();
//对map清空
void clear();
//返回map的节点数
int size();
//两个参数是路径和对应的数据节点,该函数在节点被修改前被调用
//用于清空节点的digest
void preChange(String path, DataNode node);
//两个参数是路径和对应的数据节点,该函数在节点被修改后被调用
//用于更新digest
void postChange(String path, DataNode node);
//返回digest值
long getDigest();
PS:这里的digest不同于上一篇文章所讲的节点的digest,这里是指整棵树的digest(可以