Beispiel #1
0
 /// <summary>
 /// 注销TCP服务信息
 /// </summary>
 /// <param name="identity"></param>
 /// <param name="services"></param>
 /// <param name="serviceName"></param>
 /// <returns></returns>
 private bool removeRegister(indexIdentity identity, services services, ref hashString serviceName)
 {
     services.RemovePerpService(identity);
     if (removeRegister(identity, services))
     {
         if (services.Hosts.Length == 0)
         {
             services.IsSingle = false;
             foreach (keyValue <indexIdentity, service> perpService in services.GetPerpServices())
             {
                 if (register(perpService.Key, perpService.Value, services, ref serviceName).State != registerState.Success)
                 {
                     break;
                 }
             }
             if (services.Hosts.Length == 0)
             {
                 serviceCache.Remove(serviceName);
                 appendLog(new log {
                     Type = log.type.RemoveServiceName, Services = new services {
                         Name = services.Name
                     }
                 });
             }
             return(true);
         }
         else
         {
             appendLog(new log {
                 Type = log.type.HostChanged, Services = new services {
                     Name = services.Name, Hosts = services.Hosts.copy()
                 }
             });
         }
     }
     return(false);
 }