Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- WebPartUserCapability.cs
- CodeTypeParameterCollection.cs
- recordstate.cs
- Command.cs
- xmlfixedPageInfo.cs
- DesignerAttributeInfo.cs
- OrderByQueryOptionExpression.cs
- DataControlField.cs
- MsmqIntegrationProcessProtocolHandler.cs
- UInt16.cs
- SettingsContext.cs
- DataGridViewCellMouseEventArgs.cs
- AutomationPatternInfo.cs
- PreviewKeyDownEventArgs.cs
- EdmScalarPropertyAttribute.cs
- SortAction.cs
- SmtpAuthenticationManager.cs
- FieldNameLookup.cs
- NonBatchDirectoryCompiler.cs
- SHA384.cs
- SponsorHelper.cs
- MonitoringDescriptionAttribute.cs
- ColumnProvider.cs
- SchemaSetCompiler.cs
- EdmToObjectNamespaceMap.cs
- Guid.cs
- Triplet.cs
- QuadraticBezierSegment.cs
- IndexedEnumerable.cs
- TaskCanceledException.cs
- XsltSettings.cs
- DataGridViewDataConnection.cs
- FtpCachePolicyElement.cs
- Brush.cs
- CodeTypeConstructor.cs
- SoapTypeAttribute.cs
- SelectionProcessor.cs
- XmlAttributeCollection.cs
- AttributeSetAction.cs
- ViewManager.cs
- ButtonPopupAdapter.cs
- EncryptedPackageFilter.cs
- AttachedAnnotation.cs
- RadioButton.cs
- LinearGradientBrush.cs
- AsymmetricSignatureFormatter.cs
- ScrollPatternIdentifiers.cs
- MeshGeometry3D.cs
- WebPartConnectionsConfigureVerb.cs
- ConstructorNeedsTagAttribute.cs
- ImageField.cs
- HMACRIPEMD160.cs
- MdImport.cs
- TypeListConverter.cs
- AtomMaterializerLog.cs
- ColorPalette.cs
- DataBinding.cs
- InternalTypeHelper.cs
- UrlAuthFailureHandler.cs
- TextBoxRenderer.cs
- StylusDevice.cs
- DocumentReferenceCollection.cs
- ParallelTimeline.cs
- DataGridTablesFactory.cs
- ParenthesizePropertyNameAttribute.cs
- ValidatedControlConverter.cs
- LostFocusEventManager.cs
- CachedBitmap.cs
- ImageAttributes.cs
- ToggleButtonAutomationPeer.cs
- ListControl.cs
- ResourceWriter.cs
- ListViewInsertEventArgs.cs
- ScriptingSectionGroup.cs
- EntityClassGenerator.cs
- UrlSyndicationContent.cs
- ChangeConflicts.cs
- SiteMapProvider.cs
- BaseTreeIterator.cs
- CategoryAttribute.cs
- XamlTemplateSerializer.cs
- WebFaultClientMessageInspector.cs
- control.ime.cs
- ReverseInheritProperty.cs
- EventHandlingScope.cs
- SecurityHelper.cs
- ChannelCacheDefaults.cs
- DataPagerCommandEventArgs.cs
- documentsequencetextview.cs
- SignatureResourcePool.cs
- DelegateBodyWriter.cs
- LinqDataSourceInsertEventArgs.cs
- QueryCacheEntry.cs
- SchemaInfo.cs
- ConditionalDesigner.cs
- errorpatternmatcher.cs
- HttpPostedFile.cs
- Pkcs7Signer.cs
- WorkflowQueue.cs
- CompilerInfo.cs