Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / Management / BufferedWebEventProvider.cs / 1 / BufferedWebEventProvider.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.Management { using System; using System.Web; using System.Diagnostics; using System.Web.Util; using System.Web.Configuration; using System.Configuration.Provider; using System.Collections; using System.Collections.Specialized; using System.Configuration; using System.Security; using Debug=System.Web.Util.Debug; using System.Security.Permissions; // Interface for buffered event provider [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public abstract class BufferedWebEventProvider : WebEventProvider { bool _buffer = true; string _bufferMode; WebEventBuffer _webEventBuffer; public override void Initialize(string name, NameValueCollection config) { // create buffer according to the buffer mode settings specified, like we do in sql/mail providers // wire up the delegate to the ProcessEventFlush method Debug.Trace("BufferedWebEventProvider", "Initializing: name=" + name); ProviderUtil.GetAndRemoveBooleanAttribute(config, "buffer", name, ref _buffer); if (_buffer) { ProviderUtil.GetAndRemoveRequiredNonEmptyStringAttribute(config, "bufferMode", name, ref _bufferMode); _webEventBuffer = new WebEventBuffer(this, _bufferMode, new WebEventBufferFlushCallback(this.ProcessEventFlush)); } else { ProviderUtil.GetAndRemoveStringAttribute(config, "bufferMode", name, ref _bufferMode); } base.Initialize(name, config); ProviderUtil.CheckUnrecognizedAttributes(config, name); } public bool UseBuffering { get { return _buffer; } } public string BufferMode { get { return _bufferMode; } } public override void ProcessEvent(WebBaseEvent eventRaised) { if (_buffer) { // register the event with the buffer instead of writing it out Debug.Trace("BufferedWebEventProvider", "Saving event to buffer: event=" + eventRaised.GetType().Name); _webEventBuffer.AddEvent(eventRaised); } else { WebEventBufferFlushInfo flushInfo = new WebEventBufferFlushInfo( new WebBaseEventCollection(eventRaised), EventNotificationType.Unbuffered, 0, DateTime.MinValue, 0, 0); ProcessEventFlush(flushInfo); } } public abstract void ProcessEventFlush(WebEventBufferFlushInfo flushInfo); public override void Flush() { if (_buffer) { _webEventBuffer.Flush(Int32.MaxValue, FlushCallReason.StaticFlush); } } public override void Shutdown() { if (_webEventBuffer != null) { _webEventBuffer.Shutdown(); } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AsyncPostBackErrorEventArgs.cs
- UrlPath.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- AsymmetricKeyExchangeFormatter.cs
- SessionParameter.cs
- GlyphRun.cs
- TextRangeProviderWrapper.cs
- AngleUtil.cs
- ApplicationException.cs
- HashHelper.cs
- UpdateException.cs
- IRCollection.cs
- ScriptServiceAttribute.cs
- ForceCopyBuildProvider.cs
- OdbcCommandBuilder.cs
- _SSPIWrapper.cs
- ComIntegrationManifestGenerator.cs
- FileDialogCustomPlaces.cs
- StackSpiller.cs
- TemplateBindingExtensionConverter.cs
- ValidationSummary.cs
- StreamGeometry.cs
- TargetControlTypeCache.cs
- BaseParser.cs
- UserValidatedEventArgs.cs
- XD.cs
- QueryUtil.cs
- PeerInputChannel.cs
- SamlAssertion.cs
- InnerItemCollectionView.cs
- SocketSettings.cs
- KeyedHashAlgorithm.cs
- ISessionStateStore.cs
- ZoomPercentageConverter.cs
- TreeNodeClickEventArgs.cs
- SoapInteropTypes.cs
- Vector3DKeyFrameCollection.cs
- StylusButtonCollection.cs
- PropertyInformationCollection.cs
- OutputCacheModule.cs
- QuaternionAnimationBase.cs
- CatalogZone.cs
- ObjectStateFormatter.cs
- JsonServiceDocumentSerializer.cs
- HttpVersion.cs
- PasswordRecovery.cs
- SmiEventSink_DeferedProcessing.cs
- StateManagedCollection.cs
- BuildResult.cs
- ImageAttributes.cs
- ResourceReader.cs
- ResourcePermissionBaseEntry.cs
- XmlSchemaProviderAttribute.cs
- updateconfighost.cs
- Button.cs
- ProfileGroupSettings.cs
- PropertyPathConverter.cs
- bindurihelper.cs
- CollectionViewGroup.cs
- PartialCachingAttribute.cs
- EntityModelBuildProvider.cs
- OpCopier.cs
- TabPage.cs
- SimpleFieldTemplateUserControl.cs
- UshortList2.cs
- TraceFilter.cs
- ComponentCodeDomSerializer.cs
- EUCJPEncoding.cs
- WorkflowApplicationCompletedEventArgs.cs
- SingleObjectCollection.cs
- BinaryObjectReader.cs
- DataErrorValidationRule.cs
- SqlClientPermission.cs
- RegisteredArrayDeclaration.cs
- RenderDataDrawingContext.cs
- ExpressionList.cs
- Array.cs
- XLinq.cs
- AppSettingsSection.cs
- ConstrainedDataObject.cs
- CommandSet.cs
- DataColumnMapping.cs
- MissingFieldException.cs
- UpdateExpressionVisitor.cs
- SymmetricKeyWrap.cs
- ProviderMetadataCachedInformation.cs
- TextEndOfLine.cs
- RectangleGeometry.cs
- WaitHandleCannotBeOpenedException.cs
- StyleCollection.cs
- Border.cs
- DispatcherObject.cs
- BlockUIContainer.cs
- WebServiceBindingAttribute.cs
- SqlReorderer.cs
- SerializationAttributes.cs
- ObjectDataSourceDisposingEventArgs.cs
- HttpRequestContext.cs
- CorrelationResolver.cs
- SqlMethodAttribute.cs