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
- ContainerParagraph.cs
- TemplateControl.cs
- ForeignKeyConstraint.cs
- Version.cs
- DeclaredTypeValidator.cs
- XmlValidatingReaderImpl.cs
- PropertyStore.cs
- QilXmlWriter.cs
- Vector3D.cs
- MediaContext.cs
- LazyTextWriterCreator.cs
- ImmutableClientRuntime.cs
- QueryExpr.cs
- ClientUtils.cs
- BitmapEffectGeneralTransform.cs
- oledbmetadatacollectionnames.cs
- PackagePartCollection.cs
- RequiredFieldValidator.cs
- WebPartEditorCancelVerb.cs
- BoundConstants.cs
- DateTimeUtil.cs
- DesignerVerbToolStripMenuItem.cs
- FormViewRow.cs
- SimplePropertyEntry.cs
- DataGridViewCell.cs
- GraphicsState.cs
- PanelDesigner.cs
- EntityDataSourceViewSchema.cs
- WebConfigurationHostFileChange.cs
- TextParagraphCache.cs
- FailedToStartupUIException.cs
- SerializationBinder.cs
- SingleStorage.cs
- TTSVoice.cs
- XpsImage.cs
- UniformGrid.cs
- ComboBox.cs
- DbException.cs
- UserControlFileEditor.cs
- ToolStripDropTargetManager.cs
- ComplexObject.cs
- PagedControl.cs
- ImageAutomationPeer.cs
- SecurityProtocolCorrelationState.cs
- SharedMemory.cs
- ChangeTracker.cs
- login.cs
- ShortcutKeysEditor.cs
- AlternationConverter.cs
- TransferRequestHandler.cs
- GestureRecognizer.cs
- XPathScanner.cs
- IisTraceListener.cs
- ColumnPropertiesGroup.cs
- WebPartDeleteVerb.cs
- CaseInsensitiveComparer.cs
- StaticSiteMapProvider.cs
- ValidationSummary.cs
- ProfessionalColorTable.cs
- CompositeFontFamily.cs
- ThousandthOfEmRealPoints.cs
- transactioncontext.cs
- Calendar.cs
- ResolveNameEventArgs.cs
- Int32AnimationBase.cs
- BaseValidator.cs
- Soap.cs
- BindToObject.cs
- WindowsFont.cs
- XmlDataSourceDesigner.cs
- ClaimComparer.cs
- FileNotFoundException.cs
- NativeMethods.cs
- SHA384Managed.cs
- XmlQueryStaticData.cs
- SystemIPAddressInformation.cs
- CommittableTransaction.cs
- RetrieveVirtualItemEventArgs.cs
- ScriptBehaviorDescriptor.cs
- ResourceAssociationSetEnd.cs
- TextBoxLine.cs
- ReadOnlyDataSource.cs
- COM2PropertyDescriptor.cs
- Ipv6Element.cs
- BooleanSwitch.cs
- ControlParameter.cs
- SessionEndingCancelEventArgs.cs
- ViewEventArgs.cs
- EventLogEntryCollection.cs
- HttpCookieCollection.cs
- Button.cs
- CriticalHandle.cs
- BitmapEffect.cs
- SystemNetHelpers.cs
- ScriptResourceHandler.cs
- ChunkedMemoryStream.cs
- BindingCollection.cs
- BaseDataListDesigner.cs
- WeakReferenceEnumerator.cs
- ApplicationException.cs