Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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 [....] 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. // // ==--== //+---------------------------------------------------------------------------- // // File: ClientSponsor.cs // // Contents: Agent for keeping Server Object's lifetime in [....] 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ListViewEditEventArgs.cs
- TextRunCacheImp.cs
- RuntimeConfigLKG.cs
- ContextStack.cs
- HostAdapter.cs
- AccessDataSourceDesigner.cs
- ConfigXmlCDataSection.cs
- CopyEncoder.cs
- DbDeleteCommandTree.cs
- unsafeIndexingFilterStream.cs
- IxmlLineInfo.cs
- ConcurrentStack.cs
- ContainerCodeDomSerializer.cs
- IdnMapping.cs
- QueryModel.cs
- EnumerableRowCollection.cs
- ServiceAuthorizationElement.cs
- RenderingBiasValidation.cs
- TextBoxRenderer.cs
- InProcStateClientManager.cs
- StateMachineHistory.cs
- XmlSigningNodeWriter.cs
- MediaSystem.cs
- MethodCallExpression.cs
- KeyGestureConverter.cs
- HwndSourceParameters.cs
- QualifierSet.cs
- PasswordDeriveBytes.cs
- CustomCredentialPolicy.cs
- EventsTab.cs
- CachedFontFamily.cs
- ApplicationContext.cs
- HttpVersion.cs
- Help.cs
- ResourceWriter.cs
- RegexGroupCollection.cs
- SBCSCodePageEncoding.cs
- unsafenativemethodsother.cs
- ResXResourceWriter.cs
- mediaeventargs.cs
- ProviderManager.cs
- Int32AnimationBase.cs
- AlphaSortedEnumConverter.cs
- HandlerBase.cs
- WebPartMenuStyle.cs
- ConfigurationStrings.cs
- TextPattern.cs
- EventLogInternal.cs
- PrintPreviewControl.cs
- X509Utils.cs
- CompilerCollection.cs
- FlowDocumentReader.cs
- HwndSource.cs
- EdmItemCollection.cs
- ElementAction.cs
- XmlSchemaFacet.cs
- WindowsHyperlink.cs
- FormatConvertedBitmap.cs
- XmlSchemaChoice.cs
- ClientSettingsStore.cs
- Point3DAnimationBase.cs
- GradientBrush.cs
- DataGridAddNewRow.cs
- ImplicitInputBrush.cs
- OutgoingWebRequestContext.cs
- ArgumentException.cs
- SchemaElement.cs
- XmlAnyElementAttributes.cs
- ConnectionsZone.cs
- DrawListViewSubItemEventArgs.cs
- SimpleType.cs
- UnsignedPublishLicense.cs
- StateBag.cs
- GrammarBuilderWildcard.cs
- NonBatchDirectoryCompiler.cs
- EventArgs.cs
- DataContractAttribute.cs
- CommandTreeTypeHelper.cs
- ObjectDataSource.cs
- OutputCacheProfileCollection.cs
- TreeNodeBindingCollection.cs
- WpfSharedBamlSchemaContext.cs
- Rect.cs
- XmlDomTextWriter.cs
- XPathSingletonIterator.cs
- DockPanel.cs
- UnsignedPublishLicense.cs
- MailMessageEventArgs.cs
- MLangCodePageEncoding.cs
- DrawingBrush.cs
- Registration.cs
- IconBitmapDecoder.cs
- ConnectionStringSettingsCollection.cs
- HttpStreamFormatter.cs
- IgnoreSection.cs
- StreamWriter.cs
- ModifiableIteratorCollection.cs
- CryptoStream.cs
- WebScriptClientGenerator.cs
- GenerateTemporaryTargetAssembly.cs