Skip to content

Commit

Permalink
Some comments
Browse files Browse the repository at this point in the history
  • Loading branch information
bhugot authored and fedj committed Jul 27, 2018
1 parent 2b1d10e commit a643010
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion Src/zipkin4net/Src/Transport/Http/TracingHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,22 @@ public class TracingHandler : DelegatingHandler
private readonly string _serviceName;
private readonly Func<HttpRequestMessage, string> _getClientTraceRpc;

/// <summary>
/// Create a Tracing Handler
/// </summary>
/// <param name="serviceName"></param>
/// <param name="httpMessageHandler">if not set or null then it set an <see cref="HttpClientHandler"/> as inner handler</param>
/// <param name="getClientTraceRpc"></param>
public TracingHandler(string serviceName, HttpMessageHandler httpMessageHandler = null, Func<HttpRequestMessage, string> getClientTraceRpc = null)
: this(Propagations.B3String.Injector<HttpHeaders>((carrier, key, value) => carrier.Add(key, value)), serviceName, httpMessageHandler ?? new HttpClientHandler(), getClientTraceRpc)
{ }


/// <summary>
/// Create a TracingHandler for injection purpose like HttpClientFactory in AspNetCore
/// </summary>
/// <param name="serviceName"></param>
/// <param name="getClientTraceRpc"></param>
/// <returns></returns>
public static TracingHandler WithoutInnerHandler(string serviceName, Func<HttpRequestMessage, string> getClientTraceRpc = null)
=> new TracingHandler(Propagations.B3String.Injector<HttpHeaders>((carrier, key, value) => carrier.Add(key, value)), serviceName, getClientTraceRpc);

Expand All @@ -27,6 +38,13 @@ private TracingHandler(IInjector<HttpHeaders> injector, string serviceName, Http
_serviceName = serviceName;
_getClientTraceRpc = getClientTraceRpc ?? (request => request.Method.ToString());
}

/// <summary>
/// Constructor used to create the handler without an inner handler.
/// </summary>
/// <param name="injector"></param>
/// <param name="serviceName"></param>
/// <param name="getClientTraceRpc"></param>
private TracingHandler(IInjector<HttpHeaders> injector, string serviceName, Func<HttpRequestMessage, string> getClientTraceRpc = null)
{
_injector = injector;
Expand Down

0 comments on commit a643010

Please sign in to comment.