示例#1
0
        /// <summary>
        /// Retrieves the base folder paths for files on the client that have been retrieved from the remote host.
        /// Triggers a refresh of all open files so we make sure they are in the correct workspace.
        /// </summary>
        private async Task UpdatePathsToRemoteFilesAsync(CollaborationSession session)
        {
            var(remoteRootPaths, externalPaths) = await GetLocalPathsOfRemoteRootsAsync(session)
                                                  .ConfigureAwait(false);

            // Make sure we update our references to the remote roots and iterate RDT only one at a time.
            using (
                await s_RemotePathsGate
                .DisposableWaitAsync(CancellationToken.None)
                .ConfigureAwait(false)
                )
            {
                if (
                    IsRemoteSession &&
                    (
                        !_remoteWorkspaceRootPaths.Equals(remoteRootPaths) ||
                        !_registeredExternalPaths.Equals(externalPaths)
                    )
                    )
                {
                    _remoteWorkspaceRootPaths = remoteRootPaths;
                    _registeredExternalPaths  = externalPaths;
                    await RefreshAllFilesAsync().ConfigureAwait(false);
                }
            }
        }
示例#2
0
 public bool Equals(CustomSet <T> .Builder obj)
 {
     if (factory != obj.factory)
     {
         return(false);
     }
     return(set.Equals(obj.set));
 }