Ejemplo n.º 1
0
        ///// <summary>
        ///// 初始化
        ///// </summary>
        ///// <param name="pRouter"></param>
        ///// <param name="cachePath"></param>
        ///// <returns></returns>
        //public static UserCacheManager Init(Router pRouter, string cachePath)
        //{
        //    ClientUserCache userCache = GetClientUserCache(cachePath);
        //    var userCacheManager = new UserCacheManager
        //    {
        //        router = pRouter,
        //        clientUserCache = userCache
        //    };
        //    return userCacheManager;
        //}

        /// <summary>
        /// 获取整个缓存集合
        /// </summary>
        /// <param name="cachePath"></param>
        /// <returns></returns>
        public static ClientUserCache GetClientUserCache(string cachePath)
        {
            ClientUserCache userCache;

            if (!File.Exists(cachePath))
            {
                File.Create(cachePath).Close();
            }

            try
            {
                userCache = File.ReadAllText(cachePath).ToObject <ClientUserCache>();
            }
            catch //(Exception e)
            {
                // Console.WriteLine(e);
                userCache = null;
            }

            if (userCache == null)
            {
                userCache = new ClientUserCache();
            }

            return(userCache);
        }
Ejemplo n.º 2
0
        //private Router router;
        //private ClientUserCache clientUserCache;
        //private string cachePath;

        //public ClientUserCacheItem GetCurrentUserCache()
        //{
        //    return clientUserCache.TryGetValue(router.ClientConfig.ProviderAddress + ":" +
        //                                       router.ClientConfig.ProviderWebPort, out var userCache) ? userCache : null;
        //}

        //private UserCacheManager()
        //{
        //}

        /// <summary>
        /// 通过地址获取用户信息
        /// </summary>
        /// <param name="endpoint"></param>
        /// <param name="cachePath"></param>
        /// <returns></returns>
        public static ClientUserCacheItem GetUserCacheFromEndpoint(string endpoint, string cachePath)
        {
            ClientUserCache userCache = GetClientUserCache(cachePath);

            if (userCache.ContainsKey(endpoint))
            {
                return(userCache[endpoint]);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 保存文件
 /// </summary>
 /// <param name="cachePath"></param>
 /// <param name="clientUserCache"></param>
 public static void SaveChanges(string cachePath, ClientUserCache clientUserCache)
 {
     File.WriteAllText(cachePath, clientUserCache.ToJsonString());
 }