Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- Itemizer.cs
- IListConverters.cs
- AmbientValueAttribute.cs
- SoapMessage.cs
- OdbcFactory.cs
- VisualTarget.cs
- AssemblyName.cs
- SerializerProvider.cs
- HistoryEventArgs.cs
- BigInt.cs
- XmlSecureResolver.cs
- MostlySingletonList.cs
- IisTraceListener.cs
- DecimalConstantAttribute.cs
- HostUtils.cs
- ArraySortHelper.cs
- WorkflowApplicationTerminatedException.cs
- ItemType.cs
- WebContext.cs
- IndexerNameAttribute.cs
- Boolean.cs
- KerberosReceiverSecurityToken.cs
- CompilerErrorCollection.cs
- AssemblyAssociatedContentFileAttribute.cs
- FormViewUpdateEventArgs.cs
- DataSvcMapFileSerializer.cs
- DataRelationPropertyDescriptor.cs
- DataGridViewHitTestInfo.cs
- SystemIPInterfaceStatistics.cs
- Queue.cs
- DataServiceKeyAttribute.cs
- JavaScriptString.cs
- EventLogPermission.cs
- WebPartTransformerCollection.cs
- ZipIOLocalFileBlock.cs
- EventSchemaTraceListener.cs
- TypeConverterMarkupExtension.cs
- connectionpool.cs
- CompModSwitches.cs
- BaseParser.cs
- ErrorFormatter.cs
- MarkupCompilePass1.cs
- LinkTarget.cs
- CatalogZone.cs
- HwndStylusInputProvider.cs
- FamilyMapCollection.cs
- controlskin.cs
- File.cs
- DbProviderManifest.cs
- FormsAuthenticationModule.cs
- SubMenuStyle.cs
- _StreamFramer.cs
- RangeValidator.cs
- ConfigurationConverterBase.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- LabelAutomationPeer.cs
- StorageFunctionMapping.cs
- TextFormatter.cs
- AdapterSwitches.cs
- SchemaNotation.cs
- RegistrySecurity.cs
- ServiceDesigner.cs
- Drawing.cs
- TraceContextRecord.cs
- HierarchicalDataBoundControl.cs
- DataBindingHandlerAttribute.cs
- EventDescriptor.cs
- SQLInt16Storage.cs
- MasterPageCodeDomTreeGenerator.cs
- Size3D.cs
- WebAdminConfigurationHelper.cs
- CustomMenuItemCollection.cs
- DataObjectPastingEventArgs.cs
- ConnectionsZone.cs
- DataGridViewColumn.cs
- ControllableStoryboardAction.cs
- InvalidComObjectException.cs
- ReflectPropertyDescriptor.cs
- ConfigurationElement.cs
- AutomationInteropProvider.cs
- DrawingState.cs
- DBCSCodePageEncoding.cs
- OleDbConnection.cs
- BatchStream.cs
- DefaultWorkflowTransactionService.cs
- ViewBox.cs
- HitTestParameters3D.cs
- HistoryEventArgs.cs
- DesignerSerializationVisibilityAttribute.cs
- ModelItem.cs
- TreeNodeCollection.cs
- UnsafeNativeMethods.cs
- BindingCollectionElement.cs
- LinkedResource.cs
- SchemaInfo.cs
- DataServiceHostFactory.cs
- XmlName.cs
- FrameworkRichTextComposition.cs
- TraceLog.cs
- TimeoutHelper.cs