Code:
/ FX-1434 / FX-1434 / 1.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
- TextRangeEdit.cs
- TransformedBitmap.cs
- ResourceAssociationTypeEnd.cs
- ControlsConfig.cs
- ComponentConverter.cs
- NameValueFileSectionHandler.cs
- IsolatedStoragePermission.cs
- DataSourceConverter.cs
- Unit.cs
- CodeDelegateCreateExpression.cs
- DataListAutoFormat.cs
- Debugger.cs
- DataListCommandEventArgs.cs
- VisualCollection.cs
- DataServiceResponse.cs
- ChildChangedEventArgs.cs
- SelectionList.cs
- WebSysDefaultValueAttribute.cs
- DBSchemaRow.cs
- SimpleBitVector32.cs
- RightsController.cs
- Repeater.cs
- hresults.cs
- DataGridRelationshipRow.cs
- WebHttpBinding.cs
- AssemblyAttributesGoHere.cs
- OleDbErrorCollection.cs
- HighlightVisual.cs
- X509KeyIdentifierClauseType.cs
- BamlRecordHelper.cs
- BookmarkUndoUnit.cs
- SoapReflectionImporter.cs
- XmlAnyElementAttribute.cs
- _AcceptOverlappedAsyncResult.cs
- ResourceExpressionBuilder.cs
- XmlNamespaceDeclarationsAttribute.cs
- CaseExpr.cs
- DispatcherHooks.cs
- InvokeMethodActivity.cs
- MdiWindowListStrip.cs
- XmlAttributeCollection.cs
- BinaryFormatterWriter.cs
- SelectionProcessor.cs
- MsmqVerifier.cs
- FormsAuthenticationEventArgs.cs
- QuotedPrintableStream.cs
- MemberProjectionIndex.cs
- TypeDescriptionProvider.cs
- ErrorFormatter.cs
- CodeDesigner.cs
- ProxyWebPartManager.cs
- ApplicationDirectory.cs
- XmlNode.cs
- login.cs
- BitmapEffectDrawing.cs
- NativeMethodsOther.cs
- LambdaCompiler.cs
- OneOfTypeConst.cs
- DataView.cs
- GroupQuery.cs
- ObjectNavigationPropertyMapping.cs
- SqlError.cs
- RegisteredArrayDeclaration.cs
- ObjectDisposedException.cs
- AttachedProperty.cs
- KeyGestureConverter.cs
- TraceSource.cs
- WS2007HttpBinding.cs
- DataTemplate.cs
- SafeCryptoHandles.cs
- DownloadProgressEventArgs.cs
- BrowserCapabilitiesCompiler.cs
- UInt32.cs
- MessageBox.cs
- SqlWebEventProvider.cs
- IPipelineRuntime.cs
- ObjectConverter.cs
- BrowserTree.cs
- Localizer.cs
- RootCodeDomSerializer.cs
- TextEffect.cs
- XmlSchema.cs
- ActivityStatusChangeEventArgs.cs
- ListView.cs
- BoundPropertyEntry.cs
- RequestDescription.cs
- Schema.cs
- List.cs
- XXXOnTypeBuilderInstantiation.cs
- PhysicalOps.cs
- TdsParameterSetter.cs
- Publisher.cs
- VisualState.cs
- Domain.cs
- TypeContext.cs
- SortableBindingList.cs
- DynamicScriptObject.cs
- RelationshipWrapper.cs
- Application.cs
- ExtendedProperty.cs