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
- RemoteWebConfigurationHostStream.cs
- DefaultEvaluationContext.cs
- TypeConstant.cs
- WebPartHeaderCloseVerb.cs
- Win32Exception.cs
- SponsorHelper.cs
- DupHandleConnectionReader.cs
- WebControlAdapter.cs
- EventListenerClientSide.cs
- DbConnectionPoolCounters.cs
- ApplicationFileParser.cs
- JsonFaultDetail.cs
- NodeLabelEditEvent.cs
- BuildProvider.cs
- ObjectDataSourceDisposingEventArgs.cs
- CallbackException.cs
- GenericEnumConverter.cs
- ToolStripComboBox.cs
- FeatureSupport.cs
- DocumentViewerConstants.cs
- DataKeyCollection.cs
- XmlCharCheckingReader.cs
- ResourceAttributes.cs
- DbProviderConfigurationHandler.cs
- Clipboard.cs
- AttachInfo.cs
- DataGridViewButtonCell.cs
- CreateUserWizard.cs
- CombinedGeometry.cs
- NamedElement.cs
- DiscreteKeyFrames.cs
- Verify.cs
- PagesChangedEventArgs.cs
- CurrentChangingEventManager.cs
- DesignerSerializerAttribute.cs
- XmlSchemaComplexContent.cs
- ExpressionBuilderContext.cs
- sapiproxy.cs
- ColorDialog.cs
- BooleanConverter.cs
- Label.cs
- DbExpressionVisitor_TResultType.cs
- regiisutil.cs
- RequestQueryProcessor.cs
- SelectionUIService.cs
- FunctionDescription.cs
- ToolboxItemAttribute.cs
- ProxyElement.cs
- HtmlTernaryTree.cs
- CultureInfoConverter.cs
- CollectionDataContractAttribute.cs
- FloaterParaClient.cs
- ImageBrush.cs
- HttpClientCertificate.cs
- XmlSerializerNamespaces.cs
- NetworkInformationPermission.cs
- MouseBinding.cs
- UseAttributeSetsAction.cs
- CombinedGeometry.cs
- TripleDESCryptoServiceProvider.cs
- HostProtectionException.cs
- CollectionCodeDomSerializer.cs
- RequestCache.cs
- Mappings.cs
- XmlCharacterData.cs
- updateconfighost.cs
- BindToObject.cs
- Form.cs
- BitmapPalettes.cs
- ConfigurationSectionGroupCollection.cs
- RequestCacheEntry.cs
- EventLogReader.cs
- ScrollViewerAutomationPeer.cs
- StrokeFIndices.cs
- Parser.cs
- ObjectKeyFrameCollection.cs
- ValueSerializerAttribute.cs
- basevalidator.cs
- ISFTagAndGuidCache.cs
- ECDiffieHellmanPublicKey.cs
- AbandonedMutexException.cs
- DataBindingCollection.cs
- ScriptReferenceBase.cs
- UnsafeNativeMethodsTablet.cs
- NegatedCellConstant.cs
- GACIdentityPermission.cs
- ProfileGroupSettingsCollection.cs
- OrthographicCamera.cs
- SchemaEntity.cs
- invalidudtexception.cs
- XmlSchemaGroup.cs
- DataGridCaption.cs
- ComboBox.cs
- TCEAdapterGenerator.cs
- ArrayHelper.cs
- SafeHandles.cs
- StatusBarPanel.cs
- JournalEntry.cs
- ServerValidateEventArgs.cs
- CasesDictionary.cs