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
- PickBranch.cs
- validationstate.cs
- ProviderCollection.cs
- SqlConnectionManager.cs
- PictureBox.cs
- TextPointerBase.cs
- DataService.cs
- BoundPropertyEntry.cs
- XamlReaderHelper.cs
- AvtEvent.cs
- AutomationPatternInfo.cs
- CodePageUtils.cs
- CapabilitiesAssignment.cs
- AutomationEventArgs.cs
- DbProviderFactoriesConfigurationHandler.cs
- RepeaterItem.cs
- LockRecursionException.cs
- XmlILAnnotation.cs
- ParallelTimeline.cs
- ListControl.cs
- SelectionProviderWrapper.cs
- RenameRuleObjectDialog.Designer.cs
- CodeExpressionStatement.cs
- SessionIDManager.cs
- AxHost.cs
- FamilyMap.cs
- SqlNotificationRequest.cs
- ComplexTypeEmitter.cs
- PrefixHandle.cs
- Size.cs
- Debug.cs
- CacheOutputQuery.cs
- InstanceHandleReference.cs
- TypeInformation.cs
- EmptyElement.cs
- MimeWriter.cs
- CatalogPart.cs
- Merger.cs
- ParagraphResult.cs
- CacheMemory.cs
- WebServiceData.cs
- TextDecorationCollection.cs
- versioninfo.cs
- Vector3DAnimationBase.cs
- Pens.cs
- FullTextState.cs
- Monitor.cs
- ContentDesigner.cs
- SiteMapDataSourceView.cs
- UInt32Storage.cs
- RsaSecurityToken.cs
- SqlDataReaderSmi.cs
- Button.cs
- PipeException.cs
- ProfileProvider.cs
- XmlNamespaceManager.cs
- TextFormatterHost.cs
- XamlTemplateSerializer.cs
- Brush.cs
- ApplicationInfo.cs
- TabletDeviceInfo.cs
- WebGetAttribute.cs
- Icon.cs
- dtdvalidator.cs
- ReceiveContextCollection.cs
- TabPage.cs
- Subtree.cs
- Error.cs
- XmlEntity.cs
- DefaultBinder.cs
- ReliableChannelListener.cs
- MSHTMLHost.cs
- configsystem.cs
- WebConfigurationFileMap.cs
- followingquery.cs
- CheckBox.cs
- Parser.cs
- DataContractJsonSerializer.cs
- ScanQueryOperator.cs
- RoutedCommand.cs
- DataSourceXmlSerializationAttribute.cs
- RowParagraph.cs
- CustomAttribute.cs
- UnsafeNativeMethods.cs
- OutputWindow.cs
- DSACryptoServiceProvider.cs
- AnnotationResource.cs
- TypedOperationInfo.cs
- DictionaryEntry.cs
- SecurityTokenSerializer.cs
- DiscreteKeyFrames.cs
- TypefaceMetricsCache.cs
- CalendarDayButton.cs
- CodeDOMUtility.cs
- StructuralCache.cs
- Cloud.cs
- SQLBytesStorage.cs
- ResXBuildProvider.cs
- VBCodeProvider.cs
- InputBindingCollection.cs