Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / clr / src / BCL / System / Runtime / Remoting / ClientSponsor.cs / 1 / ClientSponsor.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== //+---------------------------------------------------------------------------- // // File: ClientSponsor.cs // // Contents: Agent for keeping Server Object's lifetime in sync with a client's lifetime // // History: 8/9/00[....] Created // //+--------------------------------------------------------------------------- namespace System.Runtime.Remoting.Lifetime { using System; using System.Collections; using System.Security.Permissions; [SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.Infrastructure)] [SecurityPermissionAttribute(SecurityAction.InheritanceDemand, Flags=SecurityPermissionFlag.Infrastructure)] [System.Runtime.InteropServices.ComVisible(true)] public class ClientSponsor : MarshalByRefObject, ISponsor { private Hashtable sponsorTable = new Hashtable(10); private TimeSpan m_renewalTime = TimeSpan.FromMinutes(2); public ClientSponsor() { } public ClientSponsor(TimeSpan renewalTime) { this.m_renewalTime = renewalTime; } public TimeSpan RenewalTime { get{ return m_renewalTime;} set{ m_renewalTime = value;} } public bool Register(MarshalByRefObject obj) { BCLDebug.Trace("REMOTE", "ClientSponsor Register "+obj); ILease lease = (ILease)obj.GetLifetimeService(); if (lease == null) return false; lease.Register(this); lock(sponsorTable) { sponsorTable[obj] = lease; } return true; } public void Unregister(MarshalByRefObject obj) { BCLDebug.Trace("REMOTE", "ClientSponsor Unregister "+obj); ILease lease = null; lock(sponsorTable) { lease = (ILease)sponsorTable[obj]; } if (lease != null) lease.Unregister(this); } // ISponsor method public TimeSpan Renewal(ILease lease) { BCLDebug.Trace("REMOTE", "ClientSponsor Renewal "+m_renewalTime); return m_renewalTime; } public void Close() { BCLDebug.Trace("REMOTE","ClientSponsor Close"); lock(sponsorTable) { IDictionaryEnumerator e = sponsorTable.GetEnumerator(); while(e.MoveNext()) ((ILease)e.Value).Unregister(this); sponsorTable.Clear(); } } // Don't create a lease on the sponsor public override Object InitializeLifetimeService() { return null; } ~ClientSponsor() { BCLDebug.Trace("REMOTE","ClientSponsor Finalize"); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DbConnectionPoolCounters.cs
- XmlSchemaAttribute.cs
- NgenServicingAttributes.cs
- InternalResources.cs
- StorageSetMapping.cs
- TriggerCollection.cs
- InvalidEnumArgumentException.cs
- CodeLinePragma.cs
- RichTextBox.cs
- AdRotatorDesigner.cs
- WeakReferenceList.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- Int32CAMarshaler.cs
- HitTestResult.cs
- TextSimpleMarkerProperties.cs
- URLString.cs
- XslUrlEditor.cs
- ConcurrentQueue.cs
- ErrorFormatterPage.cs
- XamlTypeMapper.cs
- TextDocumentView.cs
- QilLiteral.cs
- MaterializeFromAtom.cs
- SafeNativeMethods.cs
- ObjectListDesigner.cs
- VariableBinder.cs
- CodeNamespaceCollection.cs
- OdbcDataAdapter.cs
- SourceChangedEventArgs.cs
- ChannelProtectionRequirements.cs
- MemoryFailPoint.cs
- lengthconverter.cs
- SQLInt64Storage.cs
- TraceRecord.cs
- EdmSchemaAttribute.cs
- HotSpotCollectionEditor.cs
- ErrorRuntimeConfig.cs
- SapiRecoContext.cs
- ShapeTypeface.cs
- loginstatus.cs
- UrlMappingsModule.cs
- ValidationVisibilityAttribute.cs
- SecurityKeyType.cs
- CursorConverter.cs
- PathFigure.cs
- XmlSchemaIdentityConstraint.cs
- UniqueConstraint.cs
- ListViewTableCell.cs
- ProfileSection.cs
- DynamicResourceExtensionConverter.cs
- XMLDiffLoader.cs
- DockPanel.cs
- ClientTarget.cs
- TreeNodeBindingCollection.cs
- AddInDeploymentState.cs
- CodeParameterDeclarationExpressionCollection.cs
- FacetEnabledSchemaElement.cs
- TextDecorationCollection.cs
- DataControlReference.cs
- BindingManagerDataErrorEventArgs.cs
- TripleDES.cs
- TraceHandlerErrorFormatter.cs
- ScriptingRoleServiceSection.cs
- ComplexTypeEmitter.cs
- UnaryExpression.cs
- CurrencyManager.cs
- LowerCaseStringConverter.cs
- DataKey.cs
- CreatingCookieEventArgs.cs
- Binding.cs
- MimeWriter.cs
- ObjectReaderCompiler.cs
- ArraySubsetEnumerator.cs
- ImagingCache.cs
- ApplicationFileParser.cs
- XmlMembersMapping.cs
- LockedAssemblyCache.cs
- StreamInfo.cs
- SchemeSettingElementCollection.cs
- ContainerParaClient.cs
- StaticSiteMapProvider.cs
- EmissiveMaterial.cs
- SerialErrors.cs
- RefExpr.cs
- AgileSafeNativeMemoryHandle.cs
- Cloud.cs
- DataControlFieldCollection.cs
- SqlConnectionPoolProviderInfo.cs
- CLSCompliantAttribute.cs
- MetadataItem.cs
- Tuple.cs
- TextTreeText.cs
- RotateTransform3D.cs
- LogPolicy.cs
- Rotation3D.cs
- HostProtectionPermission.cs
- UrlMappingsModule.cs
- OletxVolatileEnlistment.cs
- EntitySqlQueryCacheKey.cs
- Timeline.cs