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
- SoapWriter.cs
- WsatServiceAddress.cs
- NativeMethods.cs
- ClientProtocol.cs
- TargetInvocationException.cs
- WebResponse.cs
- DynamicDocumentPaginator.cs
- ConstrainedDataObject.cs
- StateInitialization.cs
- KeyEventArgs.cs
- ListViewPagedDataSource.cs
- InternalConfigRoot.cs
- SHA384.cs
- BypassElement.cs
- ConfigXmlCDataSection.cs
- XmlNamespaceManager.cs
- CreateUserWizard.cs
- _OSSOCK.cs
- GetIsBrowserClientRequest.cs
- SystemKeyConverter.cs
- BitmapCacheBrush.cs
- cookie.cs
- ContentPropertyAttribute.cs
- Int32AnimationUsingKeyFrames.cs
- PassportAuthentication.cs
- StringUtil.cs
- ActivityDesigner.cs
- BufferedWebEventProvider.cs
- DataSpaceManager.cs
- SpStreamWrapper.cs
- HtmlTableRow.cs
- DbParameterCollection.cs
- GacUtil.cs
- DbUpdateCommandTree.cs
- UnhandledExceptionEventArgs.cs
- RuntimeVariableList.cs
- LineServicesCallbacks.cs
- QuerySelectOp.cs
- RoleGroup.cs
- DecoderFallback.cs
- ClientRuntimeConfig.cs
- BaseTemplateCodeDomTreeGenerator.cs
- DoubleAnimationUsingPath.cs
- MasterPageBuildProvider.cs
- DeclarationUpdate.cs
- DisplayNameAttribute.cs
- ChangeInterceptorAttribute.cs
- QueryOptionExpression.cs
- UpdateEventArgs.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- InstanceLockedException.cs
- CharacterShapingProperties.cs
- EditCommandColumn.cs
- ComNativeDescriptor.cs
- WindowsIdentity.cs
- InheritanceContextChangedEventManager.cs
- WindowsTokenRoleProvider.cs
- ListViewContainer.cs
- WindowsBrush.cs
- SchemaNotation.cs
- Variable.cs
- EditorZoneAutoFormat.cs
- UInt64.cs
- XmlDocumentType.cs
- ParameterCollectionEditor.cs
- UpDownEvent.cs
- ResXFileRef.cs
- XmlDocumentType.cs
- BitSet.cs
- ObjectTokenCategory.cs
- MailMessageEventArgs.cs
- DataGridViewButtonColumn.cs
- KeyValuePair.cs
- ButtonColumn.cs
- CodeGroup.cs
- PTConverter.cs
- BookmarkScopeManager.cs
- GenericWebPart.cs
- DBCommandBuilder.cs
- BoundingRectTracker.cs
- PropertyExpression.cs
- CustomCategoryAttribute.cs
- IndexerNameAttribute.cs
- Soap.cs
- DataTable.cs
- QuadTree.cs
- DecoderReplacementFallback.cs
- DynamicObjectAccessor.cs
- XhtmlMobileTextWriter.cs
- SafeArrayTypeMismatchException.cs
- GenericEnumerator.cs
- AsmxEndpointPickerExtension.cs
- TrackingExtract.cs
- ComponentRenameEvent.cs
- SoapServerMethod.cs
- StringConverter.cs
- StylusEditingBehavior.cs
- SoapHeader.cs
- EmptyImpersonationContext.cs
- SQLInt16Storage.cs