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
- KerberosSecurityTokenParameters.cs
- DBSchemaTable.cs
- Maps.cs
- StyleBamlTreeBuilder.cs
- ActiveXHost.cs
- TreeNodeCollection.cs
- View.cs
- HttpPostLocalhostServerProtocol.cs
- CacheVirtualItemsEvent.cs
- LazyTextWriterCreator.cs
- EventWaitHandleSecurity.cs
- TextTreeTextBlock.cs
- X509RawDataKeyIdentifierClause.cs
- SrgsElementFactory.cs
- VisemeEventArgs.cs
- IResourceProvider.cs
- StrongNameIdentityPermission.cs
- ValidationResult.cs
- CqlGenerator.cs
- DesignerCategoryAttribute.cs
- SchemaObjectWriter.cs
- Matrix3DValueSerializer.cs
- PerfService.cs
- DotNetATv1WindowsLogEntrySerializer.cs
- BamlLocalizationDictionary.cs
- ObjectParameter.cs
- ServiceModelSecurityTokenRequirement.cs
- DataGridViewRowPostPaintEventArgs.cs
- DNS.cs
- XmlRawWriterWrapper.cs
- basecomparevalidator.cs
- ResXBuildProvider.cs
- DesignerWithHeader.cs
- ValueProviderWrapper.cs
- VerticalAlignConverter.cs
- oledbmetadatacolumnnames.cs
- CultureTable.cs
- BaseCollection.cs
- DataGridPageChangedEventArgs.cs
- VectorCollectionValueSerializer.cs
- FontStretch.cs
- TableProvider.cs
- XPathDescendantIterator.cs
- PostBackTrigger.cs
- XmlNavigatorFilter.cs
- CodeAttributeDeclaration.cs
- FixedBufferAttribute.cs
- UriScheme.cs
- SoundPlayerAction.cs
- RequestUriProcessor.cs
- TogglePattern.cs
- SystemException.cs
- HtmlControl.cs
- EditorZone.cs
- DocumentApplication.cs
- AnyReturnReader.cs
- ConfigUtil.cs
- AttachedPropertyBrowsableAttribute.cs
- JsonUriDataContract.cs
- WorkflowServiceHostFactory.cs
- RegexCharClass.cs
- EventLogPermissionEntry.cs
- SystemIdentity.cs
- RowType.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- RemoteWebConfigurationHost.cs
- MemberPath.cs
- Label.cs
- RichTextBoxDesigner.cs
- SelectorAutomationPeer.cs
- OlePropertyStructs.cs
- HttpResponseWrapper.cs
- RequestNavigateEventArgs.cs
- CacheHelper.cs
- ListBoxDesigner.cs
- XmlDocumentSerializer.cs
- WorkflowTimerService.cs
- Opcode.cs
- DynamicPhysicalDiscoSearcher.cs
- BinaryMethodMessage.cs
- GenericUriParser.cs
- WebBrowserSiteBase.cs
- RawStylusInput.cs
- FileLogRecordEnumerator.cs
- PreservationFileWriter.cs
- EventHandlersStore.cs
- TraceListener.cs
- BindingManagerDataErrorEventArgs.cs
- ChooseAction.cs
- CacheVirtualItemsEvent.cs
- WindowsNonControl.cs
- LocalizationCodeDomSerializer.cs
- SmiContext.cs
- BypassElementCollection.cs
- ListItemCollection.cs
- NumberSubstitution.cs
- DatatypeImplementation.cs
- SQLConvert.cs
- OleStrCAMarshaler.cs
- DropShadowEffect.cs