PageRenderTime 44ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/mcs/class/referencesource/System.ServiceModel.Channels/TD.Designer.cs

https://github.com/directhex/mono-1
C# | 246 lines | 145 code | 24 blank | 77 comment | 12 complexity | 819dae62383f6161432c7045825f2885 MD5 | raw file
  1. //------------------------------------------------------------------------------
  2. // <auto-generated>
  3. // This code was generated by a tool.
  4. //
  5. // Changes to this file may cause incorrect behavior and will be lost if
  6. // the code is regenerated.
  7. // </auto-generated>
  8. //------------------------------------------------------------------------------
  9. namespace System.ServiceModel.Channels
  10. {
  11. using System.Runtime;
  12. using System.Runtime.Diagnostics;
  13. using System.Security;
  14. internal partial class TD
  15. {
  16. static System.Resources.ResourceManager resourceManager;
  17. static System.Globalization.CultureInfo resourceCulture;
  18. [System.Security.SecurityCriticalAttribute()]
  19. static System.Runtime.Diagnostics.EventDescriptor[] eventDescriptors;
  20. static object syncLock = new object();
  21. // Double-checked locking pattern requires volatile for read/write synchronization
  22. static volatile bool eventDescriptorsCreated;
  23. private TD()
  24. {
  25. }
  26. [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification="This is an auto-generated code, some ETW/TraceSource mixed code would use it.")]
  27. static System.Resources.ResourceManager ResourceManager
  28. {
  29. get
  30. {
  31. if (object.ReferenceEquals(resourceManager, null))
  32. {
  33. resourceManager = new System.Resources.ResourceManager("System.ServiceModel.Channels.TD", typeof(TD).Assembly);
  34. }
  35. return resourceManager;
  36. }
  37. }
  38. [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification="This template is shared across all assemblies, some of which use this accessor.")]
  39. internal static System.Globalization.CultureInfo Culture
  40. {
  41. get
  42. {
  43. return resourceCulture;
  44. }
  45. set
  46. {
  47. resourceCulture = value;
  48. }
  49. }
  50. /// <summary>
  51. /// Check if trace definition is enabled
  52. /// Event description ID=4800, Level=Warning, Channel=debug
  53. /// </summary>
  54. internal static bool MaxPendingMessagesTotalSizeReachedIsEnabled()
  55. {
  56. return (FxTrace.ShouldTraceWarning
  57. && (FxTrace.ShouldTraceWarningToTraceSource || TD.IsEtwEventEnabled(0)));
  58. }
  59. /// <summary>
  60. /// Gets trace definition like: Message {0}was dropped, because pending messages total size limit ({1}) was exceeded. Use {2}.MaxPendingMessagesTotalSize to adjust the pending message limit.
  61. /// Event description ID=4800, Level=Warning, Channel=debug
  62. /// </summary>
  63. /// <param name="eventTraceActivity">The event trace activity</param>
  64. /// <param name="messageID">Parameter 0 for event: Message {0}was dropped, because pending messages total size limit ({1}) was exceeded. Use {2}.MaxPendingMessagesTotalSize to adjust the pending message limit.</param>
  65. /// <param name="maxPendingMessagesTotalSize">Parameter 1 for event: Message {0}was dropped, because pending messages total size limit ({1}) was exceeded. Use {2}.MaxPendingMessagesTotalSize to adjust the pending message limit.</param>
  66. /// <param name="bindingElementTypeName">Parameter 2 for event: Message {0}was dropped, because pending messages total size limit ({1}) was exceeded. Use {2}.MaxPendingMessagesTotalSize to adjust the pending message limit.</param>
  67. internal static void MaxPendingMessagesTotalSizeReached(System.Runtime.Diagnostics.EventTraceActivity eventTraceActivity, string messageID, long maxPendingMessagesTotalSize, string bindingElementTypeName)
  68. {
  69. TracePayload payload = FxTrace.Trace.GetSerializedPayload(null, null, null);
  70. if (TD.IsEtwEventEnabled(0))
  71. {
  72. TD.WriteEtwEvent(0, eventTraceActivity, messageID, maxPendingMessagesTotalSize, bindingElementTypeName, payload.AppDomainFriendlyName);
  73. }
  74. if (FxTrace.ShouldTraceWarningToTraceSource)
  75. {
  76. string description = string.Format(Culture, ResourceManager.GetString("MaxPendingMessagesTotalSizeReached", Culture), messageID, maxPendingMessagesTotalSize, bindingElementTypeName);
  77. TD.WriteTraceSource(0, description, payload);
  78. }
  79. }
  80. /// <summary>
  81. /// Check if trace definition is enabled
  82. /// Event description ID=4801, Level=verbose, Channel=Debug
  83. /// </summary>
  84. internal static bool ByteStreamMessageDecodingStartIsEnabled()
  85. {
  86. return (FxTrace.ShouldTraceVerbose && TD.IsEtwEventEnabled(1));
  87. }
  88. /// <summary>
  89. /// Gets trace definition like: ByteStreamMessageEncoder started decoding the message.
  90. /// Event description ID=4801, Level=verbose, Channel=Debug
  91. /// </summary>
  92. internal static void ByteStreamMessageDecodingStart()
  93. {
  94. TracePayload payload = FxTrace.Trace.GetSerializedPayload(null, null, null);
  95. if (TD.IsEtwEventEnabled(1))
  96. {
  97. TD.WriteEtwEvent(1, null, payload.AppDomainFriendlyName);
  98. }
  99. }
  100. /// <summary>
  101. /// Check if trace definition is enabled
  102. /// Event description ID=4802, Level=verbose, Channel=Debug
  103. /// </summary>
  104. internal static bool ByteStreamMessageEncodingStartIsEnabled()
  105. {
  106. return (FxTrace.ShouldTraceVerbose && TD.IsEtwEventEnabled(2));
  107. }
  108. /// <summary>
  109. /// Gets trace definition like: ByteStreamMessageEncoder started encoding the message.
  110. /// Event description ID=4802, Level=verbose, Channel=Debug
  111. /// </summary>
  112. /// <param name="eventTraceActivity">The event trace activity</param>
  113. internal static void ByteStreamMessageEncodingStart(System.Runtime.Diagnostics.EventTraceActivity eventTraceActivity)
  114. {
  115. TracePayload payload = FxTrace.Trace.GetSerializedPayload(null, null, null);
  116. if (TD.IsEtwEventEnabled(2))
  117. {
  118. TD.WriteEtwEvent(2, eventTraceActivity, payload.AppDomainFriendlyName);
  119. }
  120. }
  121. /// <summary>
  122. /// Creates the event descriptors array
  123. /// </summary>
  124. // Critical = Sets the SecurityCritical member eventDescriptors
  125. // Safe = We control what the event descriptors contain
  126. [System.Security.SecuritySafeCriticalAttribute()]
  127. static void CreateEventDescriptors()
  128. {
  129. System.Runtime.Diagnostics.EventDescriptor[] descriptors = new System.Runtime.Diagnostics.EventDescriptor[] {
  130. new System.Runtime.Diagnostics.EventDescriptor(4800, 0, (byte)TraceChannel.Debug, (byte)TraceEventLevel.Warning, (byte)TraceEventOpcode.Info, 0x0, 0x1000000000000000),
  131. new System.Runtime.Diagnostics.EventDescriptor(4801, 0, (byte)TraceChannel.Debug, (byte)TraceEventLevel.Verbose, (byte)TraceEventOpcode.Start, 0x9fb, 0x1000000000001000),
  132. new System.Runtime.Diagnostics.EventDescriptor(4802, 0, (byte)TraceChannel.Debug, (byte)TraceEventLevel.Verbose, (byte)TraceEventOpcode.Start, 0x9fb, 0x1000000000001000)};
  133. ushort[] e2eEvents = new ushort[] {
  134. 4800,
  135. 4802};
  136. FxTrace.UpdateEventDefinitions(descriptors, e2eEvents);
  137. eventDescriptors = descriptors;
  138. }
  139. /// <summary>
  140. /// Ensures that the event descriptors array is initialized
  141. /// </summary>
  142. static void EnsureEventDescriptors()
  143. {
  144. if (eventDescriptorsCreated)
  145. {
  146. return;
  147. }
  148. System.Threading.Monitor.Enter(syncLock);
  149. try
  150. {
  151. if (eventDescriptorsCreated)
  152. {
  153. return;
  154. }
  155. CreateEventDescriptors();
  156. eventDescriptorsCreated = true;
  157. }
  158. finally
  159. {
  160. System.Threading.Monitor.Exit(syncLock);
  161. }
  162. }
  163. /// <summary>
  164. /// Check if ETW tracing is enabled for the particular event
  165. /// </summary>
  166. /// <param name="eventIndex">The index of the event descriptor</param>
  167. static bool IsEtwEventEnabled(int eventIndex)
  168. {
  169. if (FxTrace.Trace.IsEtwProviderEnabled)
  170. {
  171. EnsureEventDescriptors();
  172. return FxTrace.IsEventEnabled(eventIndex);
  173. }
  174. return false;
  175. }
  176. /// <summary>
  177. /// Writes ETW trace event
  178. ///</summary>
  179. /// <param name="eventIndex">The index of the event descriptor</param>>
  180. /// <param name="eventParam0">A parameter of the ETW event</param>>
  181. /// <param name="eventParam1">A parameter of the ETW event</param>>
  182. /// <param name="eventParam2">A parameter of the ETW event</param>>
  183. /// <param name="eventParam3">A parameter of the ETW event</param>>
  184. /// <param name="eventParam4">A parameter of the ETW event</param>>
  185. // Critical = Calls SecurityCritical method EtwProvider.WriteEvent
  186. // Safe = We only allow setting of provider id from SecurityCritical code, access to EventDescriptors is SecurityCritical, and ETW limits buffer sizes.
  187. [System.Security.SecuritySafeCriticalAttribute()]
  188. static bool WriteEtwEvent(int eventIndex, System.Runtime.Diagnostics.EventTraceActivity eventParam0, string eventParam1, long eventParam2, string eventParam3, string eventParam4)
  189. {
  190. EnsureEventDescriptors();
  191. return FxTrace.Trace.EtwProvider.WriteEvent(ref eventDescriptors[eventIndex], eventParam0, eventParam1, eventParam2, eventParam3, eventParam4);
  192. }
  193. /// <summary>
  194. /// Writes ETW trace event
  195. ///</summary>
  196. /// <param name="eventIndex">The index of the event descriptor</param>>
  197. /// <param name="eventParam0">A parameter of the ETW event</param>>
  198. /// <param name="eventParam1">A parameter of the ETW event</param>>
  199. // Critical = Calls SecurityCritical method EtwProvider.WriteEvent
  200. // Safe = We only allow setting of provider id from SecurityCritical code, access to EventDescriptors is SecurityCritical, and ETW limits buffer sizes.
  201. [System.Security.SecuritySafeCriticalAttribute()]
  202. static bool WriteEtwEvent(int eventIndex, System.Runtime.Diagnostics.EventTraceActivity eventParam0, string eventParam1)
  203. {
  204. EnsureEventDescriptors();
  205. return FxTrace.Trace.EtwProvider.WriteEvent(ref eventDescriptors[eventIndex], eventParam0, eventParam1);
  206. }
  207. /// <summary>
  208. /// write a trace source into the diagnostic trace
  209. /// </summary>
  210. /// <param name="eventIndex">The index of the event descriptor</param>
  211. /// <param name="description">The description to write</param>
  212. /// <param name="payload">The trace payload</param>
  213. // Critical = Calls SecurityCritical method EtwDiagnosticTrace.WriteTraceSource
  214. // Safe = We only allow setting of provider id from SecurityCritical code
  215. [System.Security.SecuritySafeCriticalAttribute()]
  216. static void WriteTraceSource(int eventIndex, string description, TracePayload payload)
  217. {
  218. EnsureEventDescriptors();
  219. FxTrace.Trace.WriteTraceSource(ref eventDescriptors[eventIndex], description, payload);
  220. }
  221. }
  222. }