Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Diagnostics / PerformanceCountersBase.cs / 1 / PerformanceCountersBase.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.ServiceModel.Diagnostics { using System.Diagnostics; using System.ServiceModel.Diagnostics; using System.Runtime.InteropServices; using System.Globalization; internal abstract class PerformanceCountersBase { internal abstract PerformanceCounter[] Counters { get; set; } internal abstract string InstanceName { get; } internal abstract string[] CounterNames { get; } internal abstract int PerfCounterStart { get; } internal abstract int PerfCounterEnd { get; } internal void Increment(int counterIndex) { PerformanceCounter[] counters = this.Counters; PerformanceCounter counter = null; try { if (counters != null) { counter = counters[counterIndex]; if (counter != null) { counter.Increment(); } } } #pragma warning suppress 56500 // covered by FxCOP catch (Exception e) { if (DiagnosticUtility.IsFatal(e)) throw; PerformanceCounters.TracePerformanceCounterUpdateFailure(this.InstanceName, this.CounterNames[counterIndex]); if (counters != null) { counters[counterIndex] = null; PerformanceCounters.ReleasePerformanceCounter(ref counter); } } } internal void IncrementBy(int counterIndex, long time) { PerformanceCounter[] counters = this.Counters; PerformanceCounter counter = null; try { if (counters != null) { counter = counters[counterIndex]; if (counter != null) { counter.IncrementBy(time); } } } #pragma warning suppress 56500 // covered by FxCOP catch (Exception e) { if (DiagnosticUtility.IsFatal(e)) throw; PerformanceCounters.TracePerformanceCounterUpdateFailure(this.InstanceName, this.CounterNames[counterIndex]); if (counters != null) { counters[counterIndex] = null; PerformanceCounters.ReleasePerformanceCounter(ref counter); } } } internal void Decrement(int counterIndex) { PerformanceCounter[] counters = this.Counters; PerformanceCounter counter = null; try { if (counters != null) { counter = counters[counterIndex]; if (counter != null) { counter.Decrement(); } } } #pragma warning suppress 56500 // covered by FxCOP catch (Exception e) { if (DiagnosticUtility.IsFatal(e)) throw; PerformanceCounters.TracePerformanceCounterUpdateFailure(this.InstanceName, this.CounterNames[counterIndex]); if (counters != null) { counters[counterIndex] = null; PerformanceCounters.ReleasePerformanceCounter(ref counter); } } } // remove count chars from string and add a 2 char hash code to beginning or end, as specified. protected static string GetHashedString(string str, int startIndex, int count, bool hashAtEnd) { string returnVal = str.Remove(startIndex, count); string hash = ((uint)str.GetHashCode() % 99).ToString("00", CultureInfo.InvariantCulture); return hashAtEnd ? returnVal + hash : hash + returnVal; } internal void ReleasePerformanceCounters() { if (PerformanceCounters.PerformanceCountersEnabled) { PerformanceCounter[] counters = this.Counters; this.Counters = null; if (null != counters) { for (int ctr = this.PerfCounterStart; ctr < this.PerfCounterEnd; ++ctr) { PerformanceCounter counter = counters[ctr]; if (counter != null) { PerformanceCounters.ReleasePerformanceCounter(ref counter); } counters[ctr] = null; } } } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlQualifiedName.cs
- TranslateTransform.cs
- StreamGeometryContext.cs
- XmlLoader.cs
- InputLanguageSource.cs
- _Events.cs
- EventRouteFactory.cs
- RecognizerInfo.cs
- baseaxisquery.cs
- ProviderBase.cs
- StyleCollectionEditor.cs
- QueryStringParameter.cs
- AdvancedBindingEditor.cs
- SoapSchemaImporter.cs
- SQLMoney.cs
- OleDbCommandBuilder.cs
- WindowsSlider.cs
- LinearGradientBrush.cs
- SR.cs
- Action.cs
- OSFeature.cs
- NameGenerator.cs
- XmlSchemaInclude.cs
- SendMailErrorEventArgs.cs
- HierarchicalDataBoundControl.cs
- HuffmanTree.cs
- SqlRowUpdatedEvent.cs
- ServicePointManagerElement.cs
- Columns.cs
- CompilerTypeWithParams.cs
- IssuanceLicense.cs
- ByteAnimation.cs
- HttpResponseHeader.cs
- DataBindingCollectionConverter.cs
- SystemNetworkInterface.cs
- DependencyObjectProvider.cs
- MaterialCollection.cs
- GraphicsPathIterator.cs
- Deflater.cs
- QueryableDataSourceHelper.cs
- ExclusiveHandleList.cs
- RegexCapture.cs
- AttributeCollection.cs
- InstalledVoice.cs
- BitmapMetadataEnumerator.cs
- NaturalLanguageHyphenator.cs
- OperationCanceledException.cs
- WrappedOptions.cs
- UrlAuthFailureHandler.cs
- HostProtectionPermission.cs
- DateTimeValueSerializerContext.cs
- RtfToken.cs
- SqlTransaction.cs
- FloaterParaClient.cs
- ConfigXmlWhitespace.cs
- TripleDESCryptoServiceProvider.cs
- KnowledgeBase.cs
- MimeObjectFactory.cs
- TrackBarRenderer.cs
- DateTimeFormatInfoScanner.cs
- NCryptSafeHandles.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- ChannelTokenTypeConverter.cs
- DataTableCollection.cs
- ParagraphResult.cs
- HtmlForm.cs
- PropertyEmitterBase.cs
- Command.cs
- HtmlTextArea.cs
- IpcClientChannel.cs
- CorrelationManager.cs
- TextBoxBase.cs
- MethodSet.cs
- CellIdBoolean.cs
- Internal.cs
- ZipArchive.cs
- MonthChangedEventArgs.cs
- TypeReference.cs
- SqlCharStream.cs
- BrowserCapabilitiesFactoryBase.cs
- TextModifierScope.cs
- EventWaitHandleSecurity.cs
- FacetDescriptionElement.cs
- PenContexts.cs
- TextRangeEditLists.cs
- ActiveDocumentEvent.cs
- ProxySimple.cs
- Html32TextWriter.cs
- ErrorRuntimeConfig.cs
- BorderSidesEditor.cs
- TerminateSequence.cs
- GenericWebPart.cs
- ObjectCloneHelper.cs
- WindowClosedEventArgs.cs
- SystemException.cs
- SafeRightsManagementEnvironmentHandle.cs
- DispatchChannelSink.cs
- WebRequest.cs
- Number.cs
- MobileListItem.cs