<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.VisualStudio.LiveShare.Client</name>
    </assembly>
    <members>
        <member name="M:Microsoft.Cascade.Client.AccessControlService.GetAccessControlAsync(System.Threading.CancellationToken)">
            <param name="cancellationToken">A cancellation token.</param>
        </member>
        <member name="M:Microsoft.Cascade.Client.AgentProcess.StartAsync(System.Threading.CancellationToken)">
            <param name="cancellationToken">A cancellation token.</param>
        </member>
        <member name="M:Microsoft.Cascade.Client.AgentProcess.AcquireAgentLockAsync(System.Threading.CancellationToken)">
            <summary>
            Acquires a file lock to ensure only one vsls-agent process can be started for the agent URI.
            </summary>
            <param name="cancellationToken">Cancellation token</param>
            <returns>Disposable that releases the lock when it's disposed</returns>
        </member>
        <member name="M:Microsoft.Cascade.Client.AgentProcess.GetAgentLockFilePath">
            <summary>
            Get agent lock file path.
            </summary>
            <remarks>
            Lock file path is $TEMP/vsls-agent/{Agent URI hash}.lock.
            Agent URI hash must be consistent across different processes, 
            and so we cannot use Privacy.GetShortHash() which uses hash key that is process-specific.
            We calculate the Agent URI hash here instead.
            </remarks>
            <returns>Lock file path, not null.</returns>
        </member>
        <member name="P:Microsoft.Cascade.Client.ClientAccessCheck.ExceptionFilter">
            <summary>
            RPC message filter that can throw RemoteException on error codes associated with restricted operations.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Client.ClientAccessCheck.CanPerformOperation(Microsoft.Cascade.Contracts.RestrictedOperation)">
            <summary>
            Checks if the current RPC session client can perform the specified operation.
            Returns true if the <paramref name="operation"/> is null.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Client.ClientAccessCheck.CanPerformOperation(Microsoft.Cascade.Contracts.RestrictedOperation,System.Int32)">
            <summary>
            Checks if the given client can perform the specified operation.
            Returns true if <paramref name="operation"/> is null.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Client.ClientAccessCheck.IsReadOnly">
            <summary>
            Gets a value indicating whether current guest, calling a service in VS via RPC, is read-only.
            Returns true if there is no guest context on active RPC session or the guest is readonly.
            Returns false if there is guest context on active RPC session and it is not readonly.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Client.ClientAccessCheck.IsClientReadOnly(System.Int32)">
            <summary>
            Gets a value indicating whether the specific RPC session client is read-only.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Client.ClientAccessCheck.VerifyCanPerformOperation(Microsoft.Cascade.Contracts.RestrictedOperation)">
            <summary>
            Checks if the current RPC session client can perform the specified operation and throws <c>InsufficientAccessException</c> if not.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Client.Extensibility.CollaborationServiceFactoryException">
            <summary>
            Exception that indicates that CollaborationServiceFactory failed critically and joining start must be aborted.
            To indicate such critical failure, the service factory throws an exception with
            "Microsoft.VisualStudio.LiveShare.CriticalFactoryFailure" Data key.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Client.Extensibility.CollaborationServiceFactoryException.#ctor(System.Exception)">
            <summary>
            Creates a new instance of <see cref="T:Microsoft.Cascade.Client.Extensibility.CollaborationServiceFactoryException"/> with the exception from the collaboration service factory.
            </summary>
            <param name="innerException">Exception thrown by collaboration service factory, not null.</param>
        </member>
        <member name="T:Microsoft.Cascade.Client.Extensibility.ExceptionFilter">
            <summary>
            An RPC message filter responsible for translating response error messages into the application errors.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Client.Extensibility.ExceptionFilter.FilterRequest(Microsoft.Cascade.Rpc.RequestMessage,System.Boolean)">
            <summary>
            Translates RPC request messages.
            </summary>
            <param name="request">A request message</param>
            <param name="isSending">If this request is being sent.</param>
            <returns>Translated request message</returns>
        </member>
        <member name="M:Microsoft.Cascade.Client.Extensibility.ExceptionFilter.FilterResponse(Microsoft.Cascade.Rpc.RequestMessage,Microsoft.Cascade.Rpc.ResponseMessage,System.Boolean)">
            <summary>
            Translates RPC response messages.
            </summary>
            <param name="request">A request message.</param>
            <param name="response">A response message.</param>
            <param name="isSending">If this response is being sent.</param>
            <returns>Translated response message.</returns>
            <exception cref="T:System.NotSupportedException">When remote method couldn't be resolved.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">When remote service returns <see cref="F:Microsoft.Cascade.Client.Extensibility.RemoteServiceError.ItemNotFound"/> error code.</exception>
        </member>
        <member name="F:Microsoft.Cascade.Client.Extensibility.ExtensionPermissions.ReadUserProfile">
            <summary>Read user name and email info.</summary>
        </member>
        <member name="F:Microsoft.Cascade.Client.Extensibility.ExtensionPermissions.ShareServices">
            <summary>Share RPC services and make requests to remote RPC services
            shared by another instance of the same extension.</summary>
        </member>
        <member name="F:Microsoft.Cascade.Client.Extensibility.ExtensionPermissions.ContributeCommands">
            <summary>Contribute commands to the collaboration menu.</summary>
        </member>
        <member name="F:Microsoft.Cascade.Client.Extensibility.ExtensionPermissions.AutoShareServers">
            <summary>Start forwarding a port without prompting for user consent.</summary>
        </member>
        <member name="F:Microsoft.Cascade.Client.Extensibility.ExtensionPermissions.All">
            <summary>Special token that indicates all permissions are granted.</summary>
        </member>
        <member name="F:Microsoft.Cascade.Client.Extensibility.ExtensionPermissions.Block">
            <summary>Special token that indicates the extension should be entirely
            blocked from using the API.</summary>
        </member>
        <member name="T:Microsoft.Cascade.Client.Extensibility.ICascadeClientProvider">
            <summary>
            Provides API to retrieve a client instance.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Client.Extensibility.ICascadeClientProvider.GetClientAsync(System.Threading.CancellationToken)">
            <summary>
            Retrieves a client instance.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Client.Extensibility.LiveShareCollaborationSession">
            <summary>
            Enables other VS extensions to interact with a Live Share session.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Client.Extensibility.LiveShareCollaborationSession.OnPropertyChanged(System.String)">
            <summary>
            Raises a <see cref="E:Microsoft.VisualStudio.LiveShare.Peer.PropertyChanged" /> event.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Client.Extensibility.RemoteServiceError">
            <summary>
            Logical error codes defined by remote application services.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Client.IClientSession">
            <summary>
            A contract representing the local client session.
            </summary>
            <remarks>
            This abstraction is meant to encapsulate a session that can either be in-process
            or over RPC but still local (client to local agent) so that we avoid requiring
            RPC-isms that get in the way for in-process implementations.
            </remarks>
        </member>
        <member name="P:Microsoft.Cascade.Client.IClientSession.Principal">
            <summary>
            Gets or sets the claims principal for this session.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Client.IClientSession.SessionNumber">
            <summary>
            Gets the unique id associated with this client session.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Client.IServiceManager.AddService(System.Object)">
            <summary>
            Adds a service implementation for the service provider.
            </summary>
            <param name="service">The service implementation to add.</param>
            <exception cref="T:System.ArgumentException">A <paramref name="service"/> has already been added that matches the <see cref="T:Microsoft.Cascade.Contracts.ServiceContractAttribute"/> as this <paramref name="service"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="service"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException"><paramref name="service"/> does not implement a contract attributed by <see cref="T:Microsoft.Cascade.Contracts.ServiceContractAttribute"/>.</exception>
        </member>
        <member name="M:Microsoft.Cascade.Client.IServiceManager.RemoveService(System.Object)">
            <summary>
            Removes a service implementation for the service provider.
            </summary>
            <param name="service">The service implementation to add.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="service"/> is <c>null</c>.</exception>
            <exception cref="T:System.InvalidOperationException"><paramref name="service"/> does not implement a contract attributed by <see cref="T:Microsoft.Cascade.Contracts.ServiceContractAttribute"/>.</exception>
        </member>
        <member name="T:Microsoft.Cascade.Client.ITaskExecutionDriver">
            <summary>
            Orchestrates a task execution flow by executing or monitoring a task.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Client.ITaskExecutionDriver.ExecuteAsync(System.String,System.IProgress{Microsoft.Cascade.Contracts.TaskExecutionStatusEventArgs},System.Threading.CancellationToken)">
            <summary>
            Launches a task and monitors the task execution.
            </summary>
            <param name="taskUid">The unique task ID.</param>
            <param name="progress">The progress updates.</param>
            <param name="cancellationToken">The cancellation token.</param>
        </member>
        <member name="M:Microsoft.Cascade.Client.ITaskExecutionDriver.MonitorAsync(Microsoft.Cascade.Contracts.TaskExecutionMoniker,System.IProgress{Microsoft.Cascade.Contracts.TaskExecutionStatusEventArgs},System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Monitors an existing task execution given its moniker.
            </summary>
            <param name="taskExecution">The task execution moniker.</param>
            <param name="progress">The progress updates.</param>
            <param name="shouldTerminateOnCancel">Indicates whether the driver should terminate the task execution on cancel.</param>
            <param name="cancellationToken">The cancellation token.</param>
        </member>
        <member name="M:Microsoft.Cascade.Client.PortForwardingService.SetDestinationPortAsync(System.Int32,System.Int32,System.Threading.CancellationToken)">
            <inheritdoc/>
        </member>
        <member name="T:Microsoft.Cascade.Client.RemoteStream">
            <summary>
            Represents a stream that is returned by the <see cref="T:Microsoft.Cascade.Client.StreamManagerServiceClient"/>.
            This stream is a proxy for a stream running by the <see cref="T:Microsoft.Cascade.Contracts.IStreamService"/>, maybe across RPC boundary.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Client.RemoteTaskExecutionDriver">
            <summary>
            Helper class facilitating the invokation flow of a remote task.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Client.RemoteTaskExecutionDriver.ExecuteAsync(System.String,System.IProgress{Microsoft.Cascade.Contracts.TaskExecutionStatusEventArgs},System.Threading.CancellationToken)">
            <summary>
            Starts a remote task given a task ID and monitors its output.
            </summary>
            <param name="taskUid">Unique ID of the desired task.</param>
            <param name="progress">Report progress.</param>
            <param name="cancellationToken">
            Cancellation token. Will terminate the task execution if cancellation is requested.
            </param>
        </member>
        <member name="M:Microsoft.Cascade.Client.RemoteTaskExecutionDriver.MonitorAsync(Microsoft.Cascade.Contracts.TaskExecutionMoniker,System.IProgress{Microsoft.Cascade.Contracts.TaskExecutionStatusEventArgs},System.Boolean,System.Threading.CancellationToken)">
            <summary>
            Monitors a task execution and stream the task output associated with it.
            </summary>
            <param name="taskExecution">Unique ID of the desired task execution.</param>
            <param name="progress">Report progress.</param>
            <param name="cancellationToken">The cancellation token.</param>
        </member>
        <member name="T:Microsoft.Cascade.Client.RestrictedOperationJsonConverter">
            <summary>
            Json converter for RestrictedOperation class
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Client.RpcSessionSecurity">
            <summary>
            Security permissions of the guest user in the RPC session that connects the host agent with the guest agent.
            Use this class in host services that run on the host agent and interact with guests. Valid only after the guest has authenticated.
            The behavior is undefined for the RPC session that connects the agent with the client.
            Though the members are static, async local allows them to follow the async context of the RPC invocations.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Client.RpcSessionSecurity.IsOwner">
            <summary>
            Gets a value indicating if the interacting user is the owner.
            Always true for the host; true for the guest if it is the same user as the host; otherwise, false.
            </summary>
        </member>
        <member name="P:Microsoft.Cascade.Client.RpcSessionSecurity.IsHost">
            <summary>
            Gets value indicating if the interacting user is the host.
            Never true for guests even if it is the same user as the host.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Client.RuntimeServiceProvider">
            <summary>
            Class that implements IServiceProvider interface
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Client.Settings">
            <summary>
            Collection of settings that can be loaded from a flat JSON file,
            with support for a settings override file in the user directory.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Client.StreamManagerServiceClient">
            <summary>
            Provides a way to get a remote stream.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Client.StreamManagerServiceClient.GetStreamAsync(System.String,System.String,System.Threading.CancellationToken)">
            <summary>
            Gets a stream id from remote Stream Manager service and opens a stream via RPC stream transport
            or wraps remote Stream Service if RPC stream transport is not supported.
            </summary>
            <param name="streamName">Stream name, used by Stream Manager Service to pick the stream provider.</param>
            <param name="condition">Stream condition, data passed to the stream provider to create or get the stream.</param>
            <param name="cancellationToken">A cancellation token.</param>
            <returns>
            A remote stream or null if stream not found or cannot be created.
            The stream will behave as closed (reading returns 0 bytes) when RPC channel disconnects.
            </returns>
        </member>
        <member name="T:Microsoft.Cascade.Client.StreamServiceClient">
            <summary>
            Provides a way to read\write to a remotestream.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Shared.JsonExtensions">
            <summary>
            Json extensions
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Shared.JsonExtensions.JsonSerializationMaxDepth">
            <summary>
            The max depth for serialization.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Shared.JsonExtensions.ObjectSerializationSettings">
            <summary>
            The JSON object serialization settings.
            </summary>
        </member>
        <member name="F:Microsoft.Cascade.Shared.JsonExtensions.JsonObjectSerializer">
            <summary>
            The JSON object serializer.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Shared.JsonExtensions.FromJToken``1(Newtonsoft.Json.Linq.JToken)">
            <summary>
            Deserialize object directly from JToken.
            </summary>
            <typeparam name="T">Type of object.</typeparam>
            <param name="jtoken">The JToken to be deserialized.</param>
        </member>
        <member name="M:Microsoft.Cascade.Shared.JsonExtensions.GetPropertyOrNull``1(Newtonsoft.Json.Linq.JObject,System.String)">
            <summary>
            Extract the property directly from JObject.
            </summary>
            <typeparam name="T">Type of property to return.</typeparam>
            <param name="jobject">The JObject to be deserialized.</param>
            <param name="propertyName">The property name.</param>
        </member>
        <member name="T:Microsoft.Cascade.Shared.ServiceProviderExtensions">
            <summary>
            Helper methods to acquire services via <see cref="T:System.IServiceProvider"/>.
            </summary>
        </member>
        <member name="T:Microsoft.Cascade.Common.PathHelper">
            <summary>
            A collection of file system path analysis and manipulation functions.
            </summary>
        </member>
        <member name="M:Microsoft.Cascade.Common.PathHelper.MakeRooted(System.String,System.String)">
            <summary>
            Generates an absolute path from a base path and another path.
            </summary>
            <param name="basePath">
            An absolute path to use as the root if <paramref name="path"/> is relative.
            IMPORTANT: if basePath is a directory, it must end with a directory separator character or else
            it will be treated like a filename and discarded.
            </param>
            <param name="path">A relative or absolute path, that needs to be absolute.</param>
            <exception cref="T:System.ArgumentException">Thrown when the <paramref name="basePath"/> argument is not an absolute path.</exception>
            <returns>
            A normalized, absolute path.  A path with relative parents (i.e. c:\temp\tmp\..\a.txt) will never be returned.
            Not necessarily canonical, in that the file casing of the path is not guaranteed to be consistent.
            </returns>
        </member>
        <member name="M:Microsoft.Cascade.Common.PathHelper.MakeRelative(System.String,System.String)">
            <summary>
            given the absolute location of a file, and a disc location, returns relative file path to that disk location.
            </summary>
            <param name="basePath">
            The base path we want to relativize to. Must be absolute.
            Should <i>not</i> include a filename as the last segment will be interpreted as a directory.
            </param>
            <param name="path">
            The path we need to make relative to basePath.  The path can be either absolute path or a relative path in which case it is relative to the base path
            </param>
            <returns>
            The relative path (can be the full path when no relationship exists).
            If <paramref name="basePath"/> and <paramref name="path"/> are equivalent, the empty string is returned.
            </returns>
        </member>
        <member name="M:Microsoft.Cascade.Common.PathHelper.EnsureNoTrailingSlash(System.String)">
            <summary>
            Make sure there is no [unnecessary] trailing directory separator.
            </summary>
            <param name="path">directory path</param>
            <returns>directory path without trailing slash</returns>
        </member>
        <member name="M:Microsoft.Cascade.Common.PathHelper.EnsureTrailingSlash(System.String,System.Char)">
            <summary>
            Make sure there is a trailing directory separator.
            </summary>
            <param name="path">directory path</param>
            <param name="directorySeparatorChar">Directory separator char</param>
            <returns>directory path with trailing slash</returns>
        </member>
        <member name="M:Microsoft.Cascade.Common.PathHelper.IsInDirectoryCone(System.String,System.String)">
            <summary>
            Detects whether a given file falls within a given directory.
            </summary>
            <param name="directory">The absolute, normalized path to the directory.</param>
            <param name="file">The absolute, normalized path to the file.</param>
            <returns><c>true</c> if the given file falls within the given directory.</returns>
            <remarks>
            The current implementation of this method does NOT normalize the paths before the check.
            </remarks>
        </member>
        <member name="M:Microsoft.Cascade.Common.PathHelper.IsRooted(System.String)">
            <summary>
            Tests a path to see if it is absolute or not.  More reliable that Path.IsPathRooted.
            </summary>
            <param name="path">The path to check.</param>
            <returns><c>true</c> if the path is rooted; <c>false</c> otherwise.</returns>
        </member>
        <member name="M:Microsoft.Cascade.Common.PathHelper.IsFolder(System.String)">
            <summary>
            Check if path is a directory
            </summary>
            <param name="fullPath">The path to check</param>
            <returns>true if the path is a directory</returns>
        </member>
        <member name="M:Microsoft.Cascade.Common.PathHelper.GetCorrectCapitalization(System.IO.DirectoryInfo)">
            <summary>
            Gets the correctly cased path for a given directory.
            </summary>
            <param name="di">Directory to find the correct casing for.</param>
            <returns>New directory with correctly cased path.</returns>
        </member>
        <member name="M:Microsoft.Cascade.Common.PathHelper.IsPathValid(System.String)">
            <summary>
            Verify a valid path
            </summary>
            <param name="path">The path to verify</param>
            <returns>True if a valid path</returns>
        </member>
        <member name="M:Microsoft.Cascade.Common.PathHelper.PathNeedsNormalization(System.String)">
            <summary>
            A few fast checks that determine whether normalization of a path is warranted.
            </summary>
            <param name="path">A non-empty path.</param>
            <returns><c>true</c> if normalization is likely needed; <c>false</c> if normalization doesn't appear to be needed.</returns>
            <remarks>
            In the interest of executing very fast (since this method is used in fast-or-slow-path checks)
            this method by no means is comprehensive, but it should catch the common causes for needing normalization.
            </remarks>
        </member>
        <member name="M:Microsoft.Cascade.Common.PathHelper.CreateUriFromPath(System.String)">
            <summary>
            Helper function to create Uri object form path.
            </summary>
            <param name="path">path string</param>
            <returns>uri object</returns>
        </member>
        <member name="M:Microsoft.Cascade.Common.PathHelper.CleanupLocalFilePath(System.String)">
            <summary>
            Fixes common problems with local paths like double-backslash.
            </summary>
            <param name="path">The path to fix up.</param>
            <returns>The cleaned up path.</returns>
        </member>
    </members>
</doc>
