Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// 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(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MemberCollection.cs
- Rect3DConverter.cs
- xmlsaver.cs
- DrawTreeNodeEventArgs.cs
- DataPager.cs
- InvalidFilterCriteriaException.cs
- InternalEnumValidator.cs
- PauseStoryboard.cs
- Rect3D.cs
- HtmlInputHidden.cs
- PageThemeBuildProvider.cs
- ParseHttpDate.cs
- EventOpcode.cs
- WebPartConnectVerb.cs
- DataViewSetting.cs
- ProvideValueServiceProvider.cs
- RunInstallerAttribute.cs
- ValidationHelpers.cs
- SmtpException.cs
- ListChangedEventArgs.cs
- OutKeywords.cs
- Error.cs
- SqlTrackingService.cs
- QueryMath.cs
- WindowInteropHelper.cs
- XPathCompileException.cs
- ApplicationSecurityInfo.cs
- SqlAliasesReferenced.cs
- InvokeHandlers.cs
- WebPartAuthorizationEventArgs.cs
- QilVisitor.cs
- ListViewTableCell.cs
- ReadOnlyMetadataCollection.cs
- SortedDictionary.cs
- CollectionViewGroupInternal.cs
- RNGCryptoServiceProvider.cs
- TextServicesCompartmentEventSink.cs
- ThreadAbortException.cs
- XmlParserContext.cs
- DataGridSortCommandEventArgs.cs
- CodeGotoStatement.cs
- CroppedBitmap.cs
- StaticResourceExtension.cs
- RubberbandSelector.cs
- FormatterConverter.cs
- DebugView.cs
- LostFocusEventManager.cs
- TriggerCollection.cs
- QuinticEase.cs
- HtmlTable.cs
- DesignerVerb.cs
- SchemaContext.cs
- Rect3D.cs
- DayRenderEvent.cs
- SafeViewOfFileHandle.cs
- Unit.cs
- AppSettingsExpressionBuilder.cs
- Array.cs
- Identity.cs
- PropertyChange.cs
- LoginUtil.cs
- Socket.cs
- _DynamicWinsockMethods.cs
- Image.cs
- NamespaceList.cs
- ExpressionValueEditor.cs
- Overlapped.cs
- X509Logo.cs
- LocalizableResourceBuilder.cs
- IInstanceContextProvider.cs
- FaultCallbackWrapper.cs
- DesignerSerializerAttribute.cs
- MapPathBasedVirtualPathProvider.cs
- EmptyCollection.cs
- AppDomainShutdownMonitor.cs
- Storyboard.cs
- ServiceOperationInfoTypeConverter.cs
- ArrayExtension.cs
- SymbolEqualComparer.cs
- ElementFactory.cs
- IsolatedStorageFileStream.cs
- SoapIgnoreAttribute.cs
- DnsPermission.cs
- WebPartConnectionsCancelEventArgs.cs
- ImageConverter.cs
- EntityCommand.cs
- AttributeQuery.cs
- UnsafeNativeMethodsTablet.cs
- Literal.cs
- RequestCacheValidator.cs
- ScriptIgnoreAttribute.cs
- DbParameterCollection.cs
- FileStream.cs
- CompilerParameters.cs
- WebPartDisplayModeCollection.cs
- InternalRelationshipCollection.cs
- Hex.cs
- QilLoop.cs
- ListViewContainer.cs
- FullTextLine.cs