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
- WinEventTracker.cs
- BitmapDownload.cs
- SequentialOutput.cs
- LabelEditEvent.cs
- DispatchWrapper.cs
- odbcmetadatacolumnnames.cs
- EmbeddedObject.cs
- StateDesigner.Layouts.cs
- ScriptResourceDefinition.cs
- ToolStripOverflowButton.cs
- GuidelineCollection.cs
- CommandPlan.cs
- DataGridViewElement.cs
- listitem.cs
- CompModSwitches.cs
- TextElementCollectionHelper.cs
- DbDataAdapter.cs
- ErrorStyle.cs
- SamlDelegatingWriter.cs
- ReadOnlyDataSourceView.cs
- FixedPageProcessor.cs
- RunInstallerAttribute.cs
- ProviderIncompatibleException.cs
- Timer.cs
- ZipIOBlockManager.cs
- ObjectDataSourceFilteringEventArgs.cs
- EventWaitHandle.cs
- ClosureBinding.cs
- LinqMaximalSubtreeNominator.cs
- RemotingException.cs
- ExceptionHandlersDesigner.cs
- TextBoxBase.cs
- NativeMethodsCLR.cs
- DiagnosticTraceSource.cs
- Page.cs
- MediaPlayer.cs
- XmlBufferedByteStreamReader.cs
- RawStylusActions.cs
- PeerNameRecord.cs
- HMACSHA256.cs
- MinimizableAttributeTypeConverter.cs
- WsdlExporter.cs
- CharAnimationBase.cs
- ThreadNeutralSemaphore.cs
- CompilerGeneratedAttribute.cs
- ListViewDataItem.cs
- ForwardPositionQuery.cs
- CardSpaceShim.cs
- CookielessHelper.cs
- AttachmentCollection.cs
- ConfigurationPropertyAttribute.cs
- LoginName.cs
- DataMember.cs
- WindowHelperService.cs
- HotCommands.cs
- COM2FontConverter.cs
- WebPartDisplayMode.cs
- Environment.cs
- OleAutBinder.cs
- TemplateAction.cs
- XmlSchemaValidator.cs
- ToolStripItemEventArgs.cs
- SelectionItemProviderWrapper.cs
- UnicastIPAddressInformationCollection.cs
- AsyncOperationContext.cs
- ReferentialConstraint.cs
- BooleanStorage.cs
- OdbcReferenceCollection.cs
- PageFunction.cs
- ProcessModelSection.cs
- SqlInternalConnectionSmi.cs
- TagMapInfo.cs
- SpeechEvent.cs
- WebPartRestoreVerb.cs
- XmlUtil.cs
- GridItemPatternIdentifiers.cs
- GridToolTip.cs
- DayRenderEvent.cs
- DataListCommandEventArgs.cs
- InvokeGenerator.cs
- ToggleButtonAutomationPeer.cs
- ThemeDirectoryCompiler.cs
- StreamGeometry.cs
- Attachment.cs
- MergeLocalizationDirectives.cs
- VisualProxy.cs
- PresentationUIStyleResources.cs
- SafeRightsManagementHandle.cs
- SqlDataSourceQueryEditor.cs
- ConversionValidationRule.cs
- MetafileHeaderEmf.cs
- ObjectFullSpanRewriter.cs
- WebPartMinimizeVerb.cs
- QilParameter.cs
- OutputCacheModule.cs
- ScriptingRoleServiceSection.cs
- XmlElementAttribute.cs
- UIElement3D.cs
- ReversePositionQuery.cs
- ChannelSinkStacks.cs