Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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"); } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WriterOutput.cs
- DataGridCheckBoxColumn.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- HitTestResult.cs
- TcpProcessProtocolHandler.cs
- ObjectContextServiceProvider.cs
- Button.cs
- ObjectIDGenerator.cs
- FrameworkReadOnlyPropertyMetadata.cs
- NavigatingCancelEventArgs.cs
- SqlCacheDependencySection.cs
- ObjectQueryProvider.cs
- MulticastIPAddressInformationCollection.cs
- WSTrust.cs
- State.cs
- FixedStringLookup.cs
- SyntaxCheck.cs
- ListViewItem.cs
- QilLoop.cs
- HttpPostedFile.cs
- ObfuscateAssemblyAttribute.cs
- FormViewModeEventArgs.cs
- RequestTimeoutManager.cs
- PasswordTextNavigator.cs
- DashStyles.cs
- XmlSchemaExporter.cs
- FileFormatException.cs
- SingleObjectCollection.cs
- CookieParameter.cs
- DelegatedStream.cs
- CodeTypeMemberCollection.cs
- ParameterCollection.cs
- SafeSecurityHelper.cs
- CannotUnloadAppDomainException.cs
- SplineKeyFrames.cs
- ObjectContext.cs
- GetUserPreferenceRequest.cs
- MD5CryptoServiceProvider.cs
- ObjectListFieldsPage.cs
- ServiceHttpModule.cs
- OdbcConnectionHandle.cs
- DataStreams.cs
- HijriCalendar.cs
- InvokeWebService.cs
- UndoEngine.cs
- IIS7UserPrincipal.cs
- webbrowsersite.cs
- NumericExpr.cs
- ServiceBusyException.cs
- UpdatePanelTriggerCollection.cs
- linebase.cs
- FileFormatException.cs
- ForceCopyBuildProvider.cs
- _FixedSizeReader.cs
- AxisAngleRotation3D.cs
- DictionaryEntry.cs
- InstancePersistenceEvent.cs
- ZoneLinkButton.cs
- Vector3DCollectionConverter.cs
- GlobalEventManager.cs
- SByte.cs
- TypeHelpers.cs
- XmlSchemaCompilationSettings.cs
- LabelTarget.cs
- CommonProperties.cs
- HtmlLink.cs
- TreeNodeClickEventArgs.cs
- RenderCapability.cs
- VectorCollectionConverter.cs
- LineUtil.cs
- HttpClientChannel.cs
- EntityContainerEmitter.cs
- LinqDataView.cs
- CalloutQueueItem.cs
- HttpServerVarsCollection.cs
- AsymmetricSignatureDeformatter.cs
- UTF7Encoding.cs
- DictionaryContent.cs
- GraphicsPath.cs
- Multiply.cs
- ProcessModule.cs
- SQLBytes.cs
- DataGridGeneralPage.cs
- TypeDependencyAttribute.cs
- ImageUrlEditor.cs
- UnmanagedBitmapWrapper.cs
- TypographyProperties.cs
- ListDictionaryInternal.cs
- DbParameterCollectionHelper.cs
- AdPostCacheSubstitution.cs
- CmsUtils.cs
- MemberInfoSerializationHolder.cs
- SubpageParaClient.cs
- DriveInfo.cs
- WeakEventManager.cs
- GlyphingCache.cs
- NativeCppClassAttribute.cs
- SettingsPropertyCollection.cs
- CollectionContainer.cs
- StandardMenuStripVerb.cs