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
- _ListenerAsyncResult.cs
- ParsedAttributeCollection.cs
- PrinterUnitConvert.cs
- ResourceProperty.cs
- HttpCacheVary.cs
- BitmapEffectOutputConnector.cs
- FileDialog_Vista.cs
- SafeWaitHandle.cs
- ArrangedElementCollection.cs
- TrimSurroundingWhitespaceAttribute.cs
- DescendantQuery.cs
- PropertyExpression.cs
- Timeline.cs
- HtmlEncodedRawTextWriter.cs
- WebPartManagerDesigner.cs
- EntityDataReader.cs
- FigureParagraph.cs
- DefaultPrintController.cs
- Suspend.cs
- HealthMonitoringSectionHelper.cs
- WebGetAttribute.cs
- ThreadAttributes.cs
- ReadOnlyAttribute.cs
- LightweightCodeGenerator.cs
- SetterTriggerConditionValueConverter.cs
- Vector3DCollectionValueSerializer.cs
- InstallerTypeAttribute.cs
- SetState.cs
- EFTableProvider.cs
- XmlNodeReader.cs
- RelatedImageListAttribute.cs
- MetricEntry.cs
- CustomErrorCollection.cs
- WebPartEditorCancelVerb.cs
- XpsFixedPageReaderWriter.cs
- HttpWriter.cs
- XmlReturnReader.cs
- ISAPIWorkerRequest.cs
- RecognitionEventArgs.cs
- ListDictionaryInternal.cs
- XPathException.cs
- elementinformation.cs
- AutoGeneratedFieldProperties.cs
- ProvidersHelper.cs
- Ray3DHitTestResult.cs
- NavigationProgressEventArgs.cs
- PropertyTabAttribute.cs
- ButtonChrome.cs
- PublishLicense.cs
- SizeConverter.cs
- Size.cs
- EnumBuilder.cs
- HyperLinkColumn.cs
- PathFigure.cs
- MonitorWrapper.cs
- ProxyWebPartManagerDesigner.cs
- SecurityCriticalDataForSet.cs
- cryptoapiTransform.cs
- DrawingCollection.cs
- oledbmetadatacollectionnames.cs
- ObjectFullSpanRewriter.cs
- ProviderSettings.cs
- Attributes.cs
- SapiRecognizer.cs
- GridViewSortEventArgs.cs
- MergeFailedEvent.cs
- StreamGeometry.cs
- XsltContext.cs
- SaveFileDialog.cs
- ellipse.cs
- DesignerTransactionCloseEvent.cs
- ExpressionLink.cs
- LocalClientSecuritySettings.cs
- TextFormatterContext.cs
- JpegBitmapEncoder.cs
- WebBrowsableAttribute.cs
- HttpCapabilitiesSectionHandler.cs
- COAUTHIDENTITY.cs
- SessionSwitchEventArgs.cs
- WebControl.cs
- XmlWrappingWriter.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- CodeCatchClause.cs
- SpellerInterop.cs
- UseAttributeSetsAction.cs
- PeerApplication.cs
- AnimationLayer.cs
- CompareInfo.cs
- SingleSelectRootGridEntry.cs
- LambdaCompiler.Lambda.cs
- ScrollData.cs
- XPathNavigatorKeyComparer.cs
- Merger.cs
- AccessText.cs
- OleDbCommand.cs
- RequiredAttributeAttribute.cs
- _TransmitFileOverlappedAsyncResult.cs
- FlowDecision.cs
- HtmlForm.cs
- ResolveCriteria.cs