<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.VisualStudio.LiveShare.Tracing</name>
    </assembly>
    <members>
        <member name="T:Microsoft.VisualStudio.LiveShare.DataFormat">
            <summary>
            Describes the kind of data to be formatted.
            </summary>
            <remarks>
            Other flags are only for use with <see cref="T:Microsoft.VisualStudio.LiveShare.DataFormatAttribute" /> when
            applied to properties.
            </remarks>
        </member>
        <member name="F:Microsoft.VisualStudio.LiveShare.DataFormat.Default">
            <summary>
            Data is formatted (with no privacy) using the type's standard or overridden
            `ToString()` method.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.LiveShare.DataFormat.Text">
            <summary>
            Text is hashed when privacy is enabled.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.LiveShare.DataFormat.Path">
            <summary>
            File name or file path is partially hashed when privacy is enabled.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.LiveShare.DataFormat.Email">
            <summary>
            Email address is partially hashed when privacy is enabled.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.LiveShare.DataFormat.Uri">
            <summary>
            URI is partially hashed when privacy is enabled.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.LiveShare.DataFormat.Token">
            <summary>
            Tokens are never formatted, regardless of whether privacy is enabled.
            Instead they are replaced by a placeholder.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.LiveShare.DataFormat.Omit">
            <summary>
            Indicates a property should always be omitted from a formatted object,
            regardless of whether privacy is enabled.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.LiveShare.DataFormat.OmitDefault">
            <summary>
            Indicates a property should be omitted from a formatted object if the value
            is null or the default value for the type, rather than included as "Name=null".
            Can be combined with other format flags.
            </summary>
            <remarks>
            This may be inferred from [DataMember(EmitDefaultValue=false)].
            </remarks>
        </member>
        <member name="F:Microsoft.VisualStudio.LiveShare.DataFormat.Hide">
            <summary>
            Indicates a property should be omitted from a formatted object when
            privacy is enabled. Can be combined with other format flags.
            </summary>
        </member>
        <member name="F:Microsoft.VisualStudio.LiveShare.DataFormat.SingleMember">
            <summary>
            An object that normally has a single non-null member value is formatted
            in a more-compact form.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.LiveShare.DataFormatAttribute">
            <summary>
            Indicates that a class or property should be formatted in a specific way
            by a live share format provider instance.
            </summary>
            <remarks>
            Use when `DataContract` and `DataMember` attributes are not used or
            do not provide sufficient formatting hints.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.LiveShare.DataFormatAttribute.Format">
            <summary>
            Gets or sets the kind of data represented by the property, for purposes
            of data formatting and hashing.
            </summary>
            <remarks>
            Not valid for use on a class attribute.
            </remarks>
        </member>
        <member name="T:Microsoft.VisualStudio.LiveShare.DataFormatter">
             <summary>
             Supports formatting various fields for logging purposes, including optional
             hashing of potentially sensitive information to protect privacy.
             </summary>
             <remarks>
             This class implements `IFormatProvider`, so an instance can be passed as the
             first parameter to `String.Format()`. For example this line:
                 String.Format(new DataFormatter(), "{0:P}", filePath);
             will use the `DataFormatter` to hash the file path when formatting it.
            
             Use an instance of this class as the format provider for a class that extends
             `TraceListenerBase` to enable smart formatting of traced data objects.
             </remarks>
        </member>
        <member name="F:Microsoft.VisualStudio.LiveShare.DataFormatter.Debug">
            <summary>
            Format string suitable for use with DebuggerDisplayAttribute, for example:
                [DebuggerDisplay(DataFormatter.Debug)]
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.DataFormatter.RegisterFormat(System.Type,Microsoft.VisualStudio.LiveShare.DataFormat)">
            <summary>
            Registers a format for a data contract class. Equivalent to applying a `[DataFormat]`
            attribute to the class.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.DataFormatter.RegisterFormat(System.Reflection.PropertyInfo,Microsoft.VisualStudio.LiveShare.DataFormat)">
            <summary>
            Registers a format for a property. Equivalent to applying a `[DataFormat]` attribute
            to the property.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.DataFormatter.Format(System.Object)">
            <summary>
            Formats an object using the object's default format.
            </summary>
            <remarks>
            This static method does NOT use hashing, regardless of any instance setting.
            </remarks>
        </member>
        <member name="T:Microsoft.VisualStudio.LiveShare.Privacy">
            <summary>
            Manages a key used to hash sensitive data to ensure privacy.
            </summary>
            <remarks>
            Once generated (or set by a client), the key is stored in .NET isolated storage,
            so that it remains consistent across sessions. The key does not need to be
            stored in a secure vault because it is only used as an HMAC key for hashing
            the current user's data for tracing and telemetry; the hashed data is then
            uploaded without the key.
            </remarks>
        </member>
        <member name="P:Microsoft.VisualStudio.LiveShare.Privacy.Key">
            <summary>
            Gets the key, generating it if not found in storage,
            or sets the key and stores it for later use.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.LiveShare.Tracing.ConsoleTraceListener">
            <summary>
            Writes trace events to stdout.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.LiveShare.Tracing.LogFileTraceListener">
            <summary>
            Writes trace events (with basic metadata) to a log file in the temp directory.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.LiveShare.Tracing.SourceLevelsFilter">
            <summary>
            Enables filtering based on a combination of trace source name and trace level.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.Tracing.SourceLevelsFilter.#ctor(System.Diagnostics.SourceLevels,System.Collections.Generic.IReadOnlyDictionary{System.String,System.Diagnostics.SourceLevels},System.Collections.Generic.IEnumerable{System.Int32})">
            <summary>
            Creates a new filter with a default level and optional specific levels for
            certain sources.
            </summary>
            <param name="defaultLevel">Default levels to be traced, for sources for which
            no specific levels are specified.</param>
            <param name="sourceLevels">Optional mapping from source names to trace levels,
            to use non-default levels for specific components.</param>
            <param name="unfilteredConsoleEvents">Optional enumeration of event ids that go to console unfiltered, ignoring console verbosity.</param>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.Tracing.TraceFormat.ParseEventId(System.String)">
            <summary>
            Parses trace output to extract an event id associated with the message.
            </summary>
            <param name="formattedMessage">Trace output line.</param>
            <returns>Event ID or null if the line doesn't match expected pattern</returns>
        </member>
        <member name="T:Microsoft.VisualStudio.LiveShare.Tracing.TraceSourceExtensions">
            <summary>
            Convenience methods for TraceSource.TraceEvent().
            </summary>
            <remarks>
            Methods that take format arguments or (dollar-prefixed) interpolated strings
            delay the formatting of arguments until the trace event is actually consumed
            by a trace listener (assuming it's not ignored by a trace filter).
            </remarks>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.Tracing.TraceSourceExtensions.WithName(System.Diagnostics.TraceSource,System.String)">
            <summary>
            Creates a new TraceSource with listeners and switch copied from the
            existing TraceSource.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.Tracing.TraceSourceExtensions.WithAppendName(System.Diagnostics.TraceSource,System.String)">
            <summary>
            Return a new TraceSource by appending a name 
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.Tracing.TraceSourceExtensions.ListensFor(System.Diagnostics.TraceSource,System.Diagnostics.TraceEventType)">
            <summary>
            Returns true if there is at least one listener that will consume this
            trace event type.
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.LiveShare.Tracing.TraceSourceExtensions.NonFormattableString">
             <summary>
             Work around an overload resolution problem with `FormattableString`, enabling
             interpolated string to be used with tracing efficiently while also supporting
             plain strings.
             </summary>
             <remarks>
             See <a href="https://stackoverflow.com/questions/35770713/overloaded-string-methods-with-string-interpolation">
             Overloaded string methods with string interpolation</a>.
            
             An extra implicit conversion causes the compiler to prefer the overloads that take
             `FormattableString` when interpolated strings are used with the tracing methods. While
             plain `string` parameters get converted to/from this struct, the conversions should
             basically evaporate in inlining.
             </remarks>
        </member>
        <member name="T:Microsoft.VisualStudio.LiveShare.Tracing.TracingHttpMessageHandler">
            <summary>
            Write HTTP request and response details to a trace source.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.LiveShare.Tracing.TracingHttpMessageHandler.TraceHeaders">
            <summary>
            True to turn on tracing of request and response headers. Off by default.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.LiveShare.Tracing.TracingHttpMessageHandler.TraceContent">
            <summary>
            True trace request and response body content. Off by default.
            </summary>
            <remarks>
            Note trace listeners may truncate tracing messages to some reasonable length.
            </remarks>
        </member>
    </members>
</doc>
