Beispiel #1
0
        /// <summary>
        /// 设置基本状态 BS
        /// </summary>
        /// <param name="node">节点</param>
        /// <param name="status">要设置的基本状态</param>
        /// <remarks>基本状态低8位状态和高8位状态分别是唯一的</remarks>
        /// <returns>返回自身</returns>
        public static ProcessNode SetStatus(this ProcessNode node, ProcessNodeBaseStatus status)
        {
            //todo
            //没有做bitcount:
            if (((uint)status & 0xff) != 0)
            {
                //低位
                node.BaseStatus &= (ProcessNodeBaseStatus)0xff00 & status;
            }

            if ((uint)status >> 8 != 0)
            {
                //高位
                node.BaseStatus &= (ProcessNodeBaseStatus)0x00ff & status;
            }
            return(node);
        }
Beispiel #2
0
 /// <summary>
 /// 是否存在基本状态 BS
 /// </summary>
 /// <param name="node">节点</param>
 /// <param name="status">要判断是否存在的基本状态</param>
 /// <returns>指示是否存在</returns>
 public static bool HasStatus(this ProcessNode node, ProcessNodeBaseStatus status) => (node.BaseStatus & status) == status;