Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / Management / BufferedWebEventProvider.cs / 1305376 / 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
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
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
- TypedReference.cs
- XmlWhitespace.cs
- ChannelBase.cs
- Tracking.cs
- ReadOnlyDataSourceView.cs
- GlobalizationSection.cs
- Style.cs
- RequestCachePolicyConverter.cs
- XPathMessageFilterElementCollection.cs
- StylusPointDescription.cs
- SqlInternalConnectionTds.cs
- ChannelServices.cs
- relpropertyhelper.cs
- Currency.cs
- SchemaNotation.cs
- RegexCompilationInfo.cs
- TagPrefixAttribute.cs
- DeviceContext.cs
- WsatRegistrationHeader.cs
- SessionParameter.cs
- BidPrivateBase.cs
- BufferModesCollection.cs
- JoinGraph.cs
- CriticalHandle.cs
- UnderstoodHeaders.cs
- OleDbDataAdapter.cs
- CheckBoxFlatAdapter.cs
- DocumentPageHost.cs
- XmlMapping.cs
- UnsafeNetInfoNativeMethods.cs
- AutomationFocusChangedEventArgs.cs
- MenuAdapter.cs
- RuntimeWrappedException.cs
- TemplateNameScope.cs
- Permission.cs
- StreamWithDictionary.cs
- DataBoundControlAdapter.cs
- InfoCardKeyedHashAlgorithm.cs
- ImageMap.cs
- CapabilitiesSection.cs
- ReadOnlyDictionary.cs
- DataKey.cs
- CardSpaceException.cs
- OutputCacheModule.cs
- DrawingImage.cs
- DataView.cs
- DataListDesigner.cs
- XmlSchemaSimpleContentExtension.cs
- CodeIdentifiers.cs
- DesignerSerializerAttribute.cs
- InfoCardBaseException.cs
- RegexMatchCollection.cs
- ClientSponsor.cs
- BlurEffect.cs
- OleDbReferenceCollection.cs
- RedistVersionInfo.cs
- TypeElement.cs
- ImpersonationContext.cs
- HandleValueEditor.cs
- NumberAction.cs
- AutomationEvent.cs
- ScriptServiceAttribute.cs
- XD.cs
- DataGridViewIntLinkedList.cs
- MethodImplAttribute.cs
- WebDescriptionAttribute.cs
- FacetEnabledSchemaElement.cs
- WebConfigurationManager.cs
- UpdatableGenericsFeature.cs
- BulletedListEventArgs.cs
- xmlsaver.cs
- ISAPIApplicationHost.cs
- _IPv4Address.cs
- filewebrequest.cs
- SoapConverter.cs
- XmlSchemaSimpleTypeList.cs
- DesignerTransactionCloseEvent.cs
- AmbientValueAttribute.cs
- ConfigurationLoader.cs
- MessageSmuggler.cs
- AnnotationHelper.cs
- StylusButtonEventArgs.cs
- TypeBrowserDialog.cs
- LoggedException.cs
- WindowsSysHeader.cs
- WebEventTraceProvider.cs
- externdll.cs
- XmlSchemaDocumentation.cs
- complextypematerializer.cs
- MultiBindingExpression.cs
- SecurityBindingElementImporter.cs
- SuppressMessageAttribute.cs
- XslUrlEditor.cs
- XmlSerializerSection.cs
- ProjectionCamera.cs
- EdmRelationshipRoleAttribute.cs
- XPathScanner.cs
- MachineKeyConverter.cs
- PolyBezierSegment.cs
- RangeContentEnumerator.cs