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
- _UriSyntax.cs
- HttpProtocolImporter.cs
- LoginName.cs
- ColorContextHelper.cs
- MessageDecoder.cs
- ScrollEventArgs.cs
- CodeDirectoryCompiler.cs
- SkewTransform.cs
- TypeResolver.cs
- ResourceSetExpression.cs
- DataGridViewBindingCompleteEventArgs.cs
- NameValueFileSectionHandler.cs
- CacheChildrenQuery.cs
- ArgIterator.cs
- SerializationInfoEnumerator.cs
- GenericAuthenticationEventArgs.cs
- XpsS0ValidatingLoader.cs
- ListViewAutomationPeer.cs
- JsonByteArrayDataContract.cs
- WindowsEditBoxRange.cs
- TextEmbeddedObject.cs
- ViewGenResults.cs
- MetabaseSettingsIis7.cs
- DeviceSpecific.cs
- CommandID.cs
- AsyncSerializedWorker.cs
- RenderCapability.cs
- DataBoundControlAdapter.cs
- ProcessRequestArgs.cs
- LinearQuaternionKeyFrame.cs
- MdImport.cs
- RichTextBoxConstants.cs
- HtmlForm.cs
- SafeNativeMethods.cs
- DataListItemCollection.cs
- ListManagerBindingsCollection.cs
- ContainerSelectorBehavior.cs
- StringInfo.cs
- EventOpcode.cs
- InkCanvas.cs
- SystemWebCachingSectionGroup.cs
- CompilationRelaxations.cs
- Trace.cs
- DesignerLabelAdapter.cs
- Positioning.cs
- ControlUtil.cs
- XmlEnumAttribute.cs
- SafeEventLogReadHandle.cs
- AsyncStreamReader.cs
- String.cs
- ListViewItemMouseHoverEvent.cs
- HttpContext.cs
- PrivacyNoticeBindingElement.cs
- NonClientArea.cs
- QilCloneVisitor.cs
- OleDbDataAdapter.cs
- CodeStatementCollection.cs
- DependentList.cs
- ReferenceEqualityComparer.cs
- MemberInfoSerializationHolder.cs
- SchemaTypeEmitter.cs
- XPathDocumentBuilder.cs
- PathGeometry.cs
- ProfileEventArgs.cs
- _NetworkingPerfCounters.cs
- PagerSettings.cs
- PromptStyle.cs
- TriState.cs
- OptimalBreakSession.cs
- RegexTree.cs
- LinqDataSourceSelectEventArgs.cs
- OutputCacheProfile.cs
- ControlPager.cs
- FontSizeConverter.cs
- PropertyGridEditorPart.cs
- LineProperties.cs
- ColorInterpolationModeValidation.cs
- DynamicPropertyHolder.cs
- WebPartTracker.cs
- Main.cs
- SimplePropertyEntry.cs
- DetailsViewUpdateEventArgs.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- SafeEventLogReadHandle.cs
- KeyedCollection.cs
- ExpressionBuilder.cs
- ImageListImageEditor.cs
- ReadOnlyCollection.cs
- NetworkStream.cs
- EditableRegion.cs
- AdornerHitTestResult.cs
- Int32Converter.cs
- XhtmlBasicPageAdapter.cs
- SharedConnectionWorkflowTransactionService.cs
- DataSet.cs
- RequestUriProcessor.cs
- ReflectPropertyDescriptor.cs
- NonPrimarySelectionGlyph.cs
- SqlResolver.cs
- ByteAnimationUsingKeyFrames.cs