Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- TextCollapsingProperties.cs
- OpenTypeCommon.cs
- AliasExpr.cs
- SqlServer2KCompatibilityAnnotation.cs
- ItemList.cs
- NeutralResourcesLanguageAttribute.cs
- PackWebRequest.cs
- GreaterThanOrEqual.cs
- DesignerSerializationOptionsAttribute.cs
- _ChunkParse.cs
- AlignmentYValidation.cs
- CheckoutException.cs
- HtmlFormParameterReader.cs
- IEnumerable.cs
- SqlBuilder.cs
- EndpointInfoCollection.cs
- DefaultHttpHandler.cs
- SymmetricSecurityProtocolFactory.cs
- AppDomainEvidenceFactory.cs
- SiteMembershipCondition.cs
- FormClosingEvent.cs
- ResourceExpression.cs
- AudioDeviceOut.cs
- DataGridRelationshipRow.cs
- AttachedProperty.cs
- SqlDataSourceSelectingEventArgs.cs
- BitmapEffectDrawing.cs
- InfiniteIntConverter.cs
- SHA256Managed.cs
- FileSystemEventArgs.cs
- ScriptRef.cs
- NativeBuffer.cs
- WebScriptServiceHost.cs
- ValueTable.cs
- ADRoleFactory.cs
- HiddenFieldDesigner.cs
- CodeMemberMethod.cs
- DrawingGroup.cs
- UrlMappingCollection.cs
- ObjectItemCollection.cs
- StateInitialization.cs
- XPathDocumentIterator.cs
- DesignerGeometryHelper.cs
- TextSelectionHelper.cs
- ConnectionDemuxer.cs
- ObjectStateManager.cs
- WebUtil.cs
- UIElementCollection.cs
- DBCommandBuilder.cs
- AssemblyUtil.cs
- FixedTextView.cs
- MatrixTransform.cs
- CustomPopupPlacement.cs
- XmlMapping.cs
- ProxyWebPart.cs
- AssemblyGen.cs
- SwitchAttribute.cs
- ProfileSection.cs
- pingexception.cs
- HtmlElement.cs
- FirewallWrapper.cs
- ZipIOLocalFileBlock.cs
- ImageSource.cs
- CacheEntry.cs
- ObjectDataSourceMethodEventArgs.cs
- Model3D.cs
- CodeMethodInvokeExpression.cs
- ComplexPropertyEntry.cs
- DataGridPreparingCellForEditEventArgs.cs
- ToolBarButton.cs
- BaseResourcesBuildProvider.cs
- ServiceNameElement.cs
- SamlEvidence.cs
- WebPartZoneAutoFormat.cs
- XmlnsDictionary.cs
- CustomCategoryAttribute.cs
- ReadingWritingEntityEventArgs.cs
- SqlConnectionString.cs
- WebZoneDesigner.cs
- DbConnectionOptions.cs
- MobileControlPersister.cs
- BuildProvider.cs
- RegularExpressionValidator.cs
- IUnknownConstantAttribute.cs
- WorkflowQueue.cs
- CommandField.cs
- BinaryKeyIdentifierClause.cs
- DataPointer.cs
- XsltArgumentList.cs
- DataGridViewColumnCollectionEditor.cs
- AddressHeaderCollection.cs
- DataColumnCollection.cs
- _CacheStreams.cs
- GradientSpreadMethodValidation.cs
- SecurityState.cs
- XmlKeywords.cs
- MergeEnumerator.cs
- TextTrailingWordEllipsis.cs
- StrongNameUtility.cs
- BevelBitmapEffect.cs