<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Microsoft.VisualStudio.LiveShare.Tracing</name>
    </assembly>
    <members>
        <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="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.DelayedTraceListener`1">
            <summary>
            Abstract thread-safe trace listener that puts events into a queue and writes them asynchronously 
            </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="T:Microsoft.VisualStudio.LiveShare.Tracing.ThreadSafeTraceSource">
            <summary>
            Async trace source that doesn't use trace global lock, <see cref="P:System.Diagnostics.Trace.UseGlobalLock"/>.
            To avoid race enumerating TraceListeners (which the global lock protects against),
            add thread-safe trace listeners first, then call <see cref="M:Microsoft.VisualStudio.LiveShare.Tracing.ThreadSafeTraceSource.CaptureThreadSafeTraceListenersSnapshot"/>.
            After that <see cref="T:Microsoft.VisualStudio.LiveShare.Tracing.IAsyncTraceSource"/> methods will use the snapshot and avoid the lock.
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.Tracing.ThreadSafeTraceSource.#ctor(System.String)">
            <summary>
            Initializes a new instance of <see cref="T:Microsoft.VisualStudio.LiveShare.Tracing.ThreadSafeTraceSource"/> class, using
            the specified name for the source.
            </summary>
            <param name="name">The name of the source (typically, the name of the application).</param>
            <exception cref="T:System.ArgumentNullException">name is null.</exception>
            <exception cref="T:System.ArgumentException">name is an empty string ("").</exception>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.Tracing.ThreadSafeTraceSource.#ctor(System.String,System.Diagnostics.SourceLevels)">
            <summary>
            Initializes a new instance of the <see cref="T:Microsoft.VisualStudio.LiveShare.Tracing.ThreadSafeTraceSource"/> class, using
            the specified name for the source and the default source level at which tracing
            is to occur.
            </summary>
            <param name="name">The name of the source, typically the name of the application.</param>
            <param name="defaultLevel">
            A bitwise combination of the enumeration values that specifies the default source
            level at which to trace.
            </param>
            <exception cref="T:System.ArgumentNullException">name is null.</exception>
            <exception cref="T:System.ArgumentException">name is an empty string ("").</exception>
        </member>
        <member name="P:Microsoft.VisualStudio.LiveShare.Tracing.ThreadSafeTraceSource.IsAsyncConfigured">
            <summary>
            Get a value indicating whether the async trace source is configured and ready to run trace listeners async
            </summary>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.Tracing.ThreadSafeTraceSource.Add(System.Diagnostics.TraceListener)">
            <summary>
            Add a thread-safe trace listener and capture trace listeners snapshot.
            </summary>
            <param name="traceListener">A thread-safe trace listener</param>
            <exception cref="T:System.ArgumentNullException">If <paramref name="traceListener"/> is null.</exception>
            <exception cref="T:System.ArgumentException">If <paramref name="traceListener"/> is not thread-safe.</exception>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.Tracing.ThreadSafeTraceSource.CaptureThreadSafeTraceListenersSnapshot">
            <summary>
            Assert that all trace listeners are thread-safe (see cref="TraceListener.IsThreadSafe"/> true) and
            and captures a snapshot of them to be used for tracing events via <c>AsyncTraceEvent</c>.
            </summary>
            <exception cref="T:System.InvalidOperationException">
            No trace listeners registered, or some of trace listeners are not thread safe.
            </exception>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.Tracing.ThreadSafeTraceSource.CloneWithName(System.String)">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.Tracing.ThreadSafeTraceSource.AsyncTraceEvent(System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])">
            <inheritdoc/>
        </member>
        <member name="M:Microsoft.VisualStudio.LiveShare.Tracing.ThreadSafeTraceSource.ListensFor(System.Diagnostics.TraceEventType)">
            <inheritdoc/>
        </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.TraceListenerBase">
            <summary>
            Abstract thread-safe trace listener
            </summary>
        </member>
        <member name="T:Microsoft.VisualStudio.LiveShare.Tracing.TraceListenerEvent">
            <summary>
            Trace event data that can be created at the time of tracing and traced later by trace listener in the background.
            This object captures the trace event data (e.g. exact time and call stack)
            and then trace listener could use this data later.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.LiveShare.Tracing.TraceListenerEvent.Message">
            <summary>
            Trace message formatted by the trace listener.
            </summary>
        </member>
        <member name="P:Microsoft.VisualStudio.LiveShare.Tracing.TraceListenerEvent.EventType">
            <summary>
            Trace event type.
            </summary>
        </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>
