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
- DataConnectionHelper.cs
- ConvertTextFrag.cs
- PermissionSetTriple.cs
- HtmlTernaryTree.cs
- XsltConvert.cs
- KeyboardNavigation.cs
- AppDomainResourcePerfCounters.cs
- PeerNameRegistration.cs
- BaseCAMarshaler.cs
- StylusPointPropertyId.cs
- CompleteWizardStep.cs
- QueryContinueDragEvent.cs
- BinHexEncoder.cs
- BinaryConverter.cs
- HandleCollector.cs
- SchemaElement.cs
- DetailsViewModeEventArgs.cs
- HtmlElementErrorEventArgs.cs
- DetailsViewPageEventArgs.cs
- WindowsMenu.cs
- EntityDataSourceUtil.cs
- PathGeometry.cs
- CodeTypeDelegate.cs
- HierarchicalDataBoundControlAdapter.cs
- EntityViewContainer.cs
- PropertyEntry.cs
- DataKey.cs
- NativeMethods.cs
- IPAddressCollection.cs
- ResourceAssociationTypeEnd.cs
- DynamicDataManager.cs
- securestring.cs
- IBuiltInEvidence.cs
- AnnouncementEventArgs.cs
- RadioButton.cs
- NamedObject.cs
- DesignerTransactionCloseEvent.cs
- CategoryNameCollection.cs
- Int32CollectionConverter.cs
- DataObjectPastingEventArgs.cs
- TypeLibConverter.cs
- DataGridPreparingCellForEditEventArgs.cs
- X509Utils.cs
- FileLogRecordEnumerator.cs
- DependencySource.cs
- RtfToXamlReader.cs
- NetworkInterface.cs
- GeneralTransform2DTo3D.cs
- PowerStatus.cs
- Logging.cs
- InvalidCastException.cs
- WebBrowser.cs
- SamlAction.cs
- AnimationTimeline.cs
- BitmapEffectGeneralTransform.cs
- _IPv4Address.cs
- ButtonChrome.cs
- WpfXamlMember.cs
- ReachSerializationUtils.cs
- TargetControlTypeAttribute.cs
- SqlIdentifier.cs
- AttachedProperty.cs
- EntityWithKeyStrategy.cs
- DynamicResourceExtension.cs
- MachineKey.cs
- ArrayItemValue.cs
- ThreadExceptionEvent.cs
- WaitForChangedResult.cs
- InheritanceContextChangedEventManager.cs
- LambdaCompiler.Binary.cs
- JsonDeserializer.cs
- DynamicILGenerator.cs
- MethodImplAttribute.cs
- EnumType.cs
- EasingQuaternionKeyFrame.cs
- ValidatingPropertiesEventArgs.cs
- Menu.cs
- IApplicationTrustManager.cs
- ComponentDispatcher.cs
- PageRequestManager.cs
- StylusPointCollection.cs
- SingleObjectCollection.cs
- SQLDouble.cs
- CleanUpVirtualizedItemEventArgs.cs
- DelayDesigner.cs
- EntityClassGenerator.cs
- PartialTrustValidationBehavior.cs
- ReturnEventArgs.cs
- namescope.cs
- WebPartUserCapability.cs
- GradientStop.cs
- PeerResolverMode.cs
- CookieProtection.cs
- ScriptMethodAttribute.cs
- IODescriptionAttribute.cs
- MbpInfo.cs
- RelationshipEnd.cs
- ContractMethodInfo.cs
- Group.cs
- BooleanFunctions.cs