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
- DataSet.cs
- CatalogZoneDesigner.cs
- AbstractDataSvcMapFileLoader.cs
- LayoutTable.cs
- ASCIIEncoding.cs
- Line.cs
- VoiceChangeEventArgs.cs
- AuthStoreRoleProvider.cs
- XsltLoader.cs
- PointLight.cs
- Method.cs
- dsa.cs
- GridViewHeaderRowPresenter.cs
- PolicyManager.cs
- ListSortDescriptionCollection.cs
- CommandLibraryHelper.cs
- FirstMatchCodeGroup.cs
- StyleCollection.cs
- Point.cs
- NamedElement.cs
- PrintSchema.cs
- DateTimeStorage.cs
- ConfigurationPropertyAttribute.cs
- EmissiveMaterial.cs
- PersonalizationStateInfoCollection.cs
- smtppermission.cs
- XmlComment.cs
- KeyedHashAlgorithm.cs
- DbParameterCollection.cs
- MarkupCompilePass2.cs
- ComponentSerializationService.cs
- PrePrepareMethodAttribute.cs
- RTTrackingProfile.cs
- SocketAddress.cs
- StrokeIntersection.cs
- CmsUtils.cs
- DynamicRouteExpression.cs
- Rect3DConverter.cs
- PaperSource.cs
- Preprocessor.cs
- GeneralTransform3DGroup.cs
- WrappedIUnknown.cs
- HandleRef.cs
- GenericUriParser.cs
- AdCreatedEventArgs.cs
- UTF8Encoding.cs
- WebPartMovingEventArgs.cs
- HttpHostedTransportConfiguration.cs
- AddInStore.cs
- MobileTextWriter.cs
- SystemWebCachingSectionGroup.cs
- MetaTableHelper.cs
- NamedPipeAppDomainProtocolHandler.cs
- util.cs
- DataColumnCollection.cs
- CodeSpit.cs
- TemplateField.cs
- Point.cs
- AbandonedMutexException.cs
- ExceptionUtil.cs
- MatrixCamera.cs
- CryptoStream.cs
- PipeStream.cs
- cookiecontainer.cs
- AddInController.cs
- ExceptionRoutedEventArgs.cs
- UserControl.cs
- ColorDialog.cs
- CompensatableTransactionScopeActivityDesigner.cs
- ApplicationDirectory.cs
- Array.cs
- FigureHelper.cs
- SetterBase.cs
- BaseParser.cs
- GenericIdentity.cs
- RuleConditionDialog.cs
- SmiContextFactory.cs
- ComplexPropertyEntry.cs
- RegisterResponseInfo.cs
- BitArray.cs
- WebRequest.cs
- SendMessageContent.cs
- HttpHandlerActionCollection.cs
- autovalidator.cs
- SqlDataSourceSelectingEventArgs.cs
- TextBounds.cs
- ToggleProviderWrapper.cs
- Int16KeyFrameCollection.cs
- CustomBindingElementCollection.cs
- AssemblyContextControlItem.cs
- DataGridViewCellPaintingEventArgs.cs
- XmlMembersMapping.cs
- MouseCaptureWithinProperty.cs
- Bits.cs
- RootBuilder.cs
- cryptoapiTransform.cs
- WindowsRichEdit.cs
- RecordManager.cs
- TableItemProviderWrapper.cs
- WorkflowTraceTransfer.cs