//----------------------------------------------------------------------------- // // Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"). // You may not use this file except in compliance with the License. // A copy of the License is located at // // http://aws.amazon.com/apache2.0 // // or in the "license" file accompanying this file. This file is distributed // on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either // express or implied. See the License for the specific language governing // permissions and limitations under the License. // //----------------------------------------------------------------------------- using System; #if NETFRAMEWORK using System.Net.Http; #else using Microsoft.AspNetCore.Http; #endif namespace Amazon.XRay.Recorder.Core.Strategies { /// /// Strategy to name a segment /// [CLSCompliant(false)] public abstract class SegmentNamingStrategy { /// /// The environment variable for segment name /// public const string EnvironmentVariableSegmentName = "AWS_XRAY_TRACING_NAME"; /// /// Gets the segment name from environment variable. /// /// Segment name from environment variable public static string GetSegmentNameFromEnvironmentVariable() { return Environment.GetEnvironmentVariable(SegmentNamingStrategy.EnvironmentVariableSegmentName); } #if NETFRAMEWORK /// /// Gets the name of the segment. /// /// The HTTP request. /// The segment name public abstract string GetSegmentName(HttpRequestMessage httpRequest); /// /// Gets the name of the segment. /// /// The HTTP request. /// The segment name public abstract string GetSegmentName(System.Web.HttpRequest httpRequest); #else /// /// Gets the name of the segment. /// /// The request. /// The segment name public abstract string GetSegmentName(HttpRequest httpRequest); #endif } }