// Token: 0x0600133E RID: 4926 RVA: 0x0004D468 File Offset: 0x0004B668 public IEnumerable <CopyStatusClientCachedEntry> GetCopyStatusesByServer(AmServerName server, IEnumerable <IADDatabase> expectedDatabases, CopyStatusClientLookupFlags flags) { if (expectedDatabases == null) { return(new List <CopyStatusClientCachedEntry>()); } List <CopyStatusClientCachedEntry> list = null; if (!this.IsReadThroughNeeded(flags)) { if (this.m_statusPoller != null) { this.m_statusPoller.TryWaitForInitialization(); } list = this.m_statusTable.GetCopyStatusCachedEntriesByServer(server); } if (list == null) { list = new List <CopyStatusClientCachedEntry>(expectedDatabases.Count <IADDatabase>()); } Dictionary <Guid, CopyStatusClientCachedEntry> tempStatusTable = list.ToDictionary((CopyStatusClientCachedEntry status) => status.DbGuid); Dictionary <Guid, IADDatabase> expectedDbsTable = expectedDatabases.ToDictionary((IADDatabase db) => db.Guid); if (expectedDatabases.All((IADDatabase db) => tempStatusTable.ContainsKey(db.Guid))) { return((from status in list where expectedDbsTable.ContainsKey(status.DbGuid) select status).ToList <CopyStatusClientCachedEntry>()); } Exception ex = null; return(this.FetchAllCopyStatusesFromRpc(server, expectedDatabases, ref ex)); }
// Token: 0x0600133D RID: 4925 RVA: 0x0004D334 File Offset: 0x0004B534 public IEnumerable <CopyStatusClientCachedEntry> GetCopyStatusesByDatabase(Guid dbGuid, IEnumerable <AmServerName> servers, CopyStatusClientLookupFlags flags) { if (servers == null) { return(new List <CopyStatusClientCachedEntry>()); } List <CopyStatusClientCachedEntry> list = null; if (!this.IsReadThroughNeeded(flags)) { list = this.m_statusTable.GetCopyStatusCachedEntriesByDatabase(dbGuid); } if (list == null) { list = new List <CopyStatusClientCachedEntry>(servers.Count <AmServerName>()); } using (IEnumerator <AmServerName> enumerator = servers.GetEnumerator()) { while (enumerator.MoveNext()) { AmServerName server = enumerator.Current; if (!list.Any((CopyStatusClientCachedEntry status) => server.Equals(status.ServerContacted))) { list.Add(this.GetCopyStatusCachedEntry(dbGuid, server, flags)); } } } return((from status in list where servers.Contains(status.ServerContacted) select status).ToList <CopyStatusClientCachedEntry>()); }
// Token: 0x06001340 RID: 4928 RVA: 0x0004D578 File Offset: 0x0004B778 public CopyStatusClientCachedEntry GetCopyStatusCachedEntry(Guid dbGuid, AmServerName server, CopyStatusClientLookupFlags flags) { CopyStatusClientCachedEntry copyStatusClientCachedEntry = null; Exception ex = null; bool flag = this.IsReadThroughNeeded(flags); if (!flag) { if (this.m_statusPoller != null) { this.m_statusPoller.TryWaitForInitialization(); } copyStatusClientCachedEntry = this.m_statusTable.GetCopyStatusCachedEntry(dbGuid, server); if (copyStatusClientCachedEntry == null) { flag = true; CopyStatusClientLookup.Tracer.TraceDebug <Guid, AmServerName>((long)this.GetHashCode(), "CopyStatusClientLookup.GetCopyStatus for DB '{0}' to server '{1}' hit a cache miss! Performing a read through instead!", dbGuid, server); } } if (flag) { copyStatusClientCachedEntry = this.FetchCopyStatusFromRpc(dbGuid, server, ref ex); } return(copyStatusClientCachedEntry); }
// Token: 0x06001343 RID: 4931 RVA: 0x0004D6B0 File Offset: 0x0004B8B0 private bool IsReadThroughNeeded(CopyStatusClientLookupFlags flags) { return((flags & CopyStatusClientLookupFlags.ReadThrough) != CopyStatusClientLookupFlags.None || !this.m_cachingEnabled); }
// Token: 0x0600133F RID: 4927 RVA: 0x0004D560 File Offset: 0x0004B760 public CopyStatusClientCachedEntry GetCopyStatus(Guid dbGuid, AmServerName server, CopyStatusClientLookupFlags flags) { return(this.GetCopyStatusCachedEntry(dbGuid, server, flags)); }