// Token: 0x06000ED9 RID: 3801 RVA: 0x0003F5F4 File Offset: 0x0003D7F4 public override TopologyInfo GetLocalServerTopology(bool isForceRefresh = false) { TopologyInfo topologyInfo = null; IActiveManagerSettings settings = DxStoreSetting.Instance.GetSettings(); bool flag = settings.DxStoreRunMode != DxStoreMode.Disabled; if (isForceRefresh) { Dependencies.ADConfig.Refresh("Distributed store requesting for AD config refresh since members seem to have changed"); } IADServer localServer = Dependencies.ADConfig.GetLocalServer(); if (localServer != null) { topologyInfo = new TopologyInfo(); if (flag && localServer.DatabaseAvailabilityGroup != null) { IADDatabaseAvailabilityGroup localDag = Dependencies.ADConfig.GetLocalDag(); if (localDag != null) { topologyInfo.IsConfigured = true; topologyInfo.Name = localDag.Name; if (this.fixedMemberServersMap.Count == 0) { SortedDictionary <string, string> fixedDagMembers = this.GetFixedDagMembers(); if (fixedDagMembers != null && fixedDagMembers.Count > 0) { this.fixedMemberServersMap = fixedDagMembers; this.eventLogger.Log(DxEventSeverity.Info, 0, "Found fixed dag members {0}", new object[] { string.Join(";", fixedDagMembers.Values) }); } } if (this.fixedMemberServersMap.Count > 0) { topologyInfo.Members = this.fixedMemberServersMap.Keys.ToArray <string>(); } else if (localDag.Servers != null) { topologyInfo.Members = (from s in localDag.Servers select s.Name).ToArray <string>(); } topologyInfo.IsAllMembersVersionCompatible = this.versionChecker.CheckVersionCompatibility(); } } } return(topologyInfo); }
public void Read (TProtocol iprot) { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 0: if (field.Type == TType.Struct) { Success = new TopologyInfo(); Success.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 1: if (field.Type == TType.Struct) { E = new NotAliveException(); E.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 2: if (field.Type == TType.Struct) { Aze = new AuthorizationException(); Aze.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); }