NodeManager.cs 1.3 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DeviceLibrary
{
    public class NodeManager
    {
        /// <summary>
        /// 节点信息
        /// </summary>
        public static List<ClientNode> nodeInfo;

        public static void InitNodes()
        {
            nodeInfo = new List<ClientNode>();
        }
        public static void FindNameBy(string alicename, out string nodename)
        {
            nodename = "";
            int id = nodeInfo.FindIndex(s => s.AliceName.Equals(alicename));
            if (id > -1)
            {
                nodename = nodeInfo[id].Name;
            }
        }
        /// <summary>
        /// 查找节点是否存在以及是否调用
        /// </summary>
        /// <param name="nodeName">节点名称</param>
        /// <returns></returns>
        public static int FindNode(string nodeName)
        {
            int idx = nodeInfo.FindIndex(s => s.Name.Equals(nodeName) && s.IsUse);
            return idx;
        }
        public static Node GetNodeBy(int i)
        {
            if (i > -1)
              return  nodeInfo[i];
            return null; 
        }
        public static eNodeStatus? GetState(int i)
        {
            return GetNodeBy(i)?.GetState();
        }
    }
}