Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Runtime / Remoting / ClientSponsor.cs / 1305376 / 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; [System.Security.SecurityCritical] // auto-generated_required [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;} } [System.Security.SecurityCritical] // auto-generated 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; } [System.Security.SecurityCritical] // auto-generated 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 [System.Security.SecurityCritical] public TimeSpan Renewal(ILease lease) { BCLDebug.Trace("REMOTE", "ClientSponsor Renewal "+m_renewalTime); return m_renewalTime; } [System.Security.SecurityCritical] // auto-generated 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 [System.Security.SecurityCritical] public override Object InitializeLifetimeService() { return null; } [System.Security.SecuritySafeCritical] // finalizers should be treated as safe ~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; [System.Security.SecurityCritical] // auto-generated_required [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;} } [System.Security.SecurityCritical] // auto-generated 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; } [System.Security.SecurityCritical] // auto-generated 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 [System.Security.SecurityCritical] public TimeSpan Renewal(ILease lease) { BCLDebug.Trace("REMOTE", "ClientSponsor Renewal "+m_renewalTime); return m_renewalTime; } [System.Security.SecurityCritical] // auto-generated 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 [System.Security.SecurityCritical] public override Object InitializeLifetimeService() { return null; } [System.Security.SecuritySafeCritical] // finalizers should be treated as safe ~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
- GlobalEventManager.cs
- MetadataPropertyvalue.cs
- IFlowDocumentViewer.cs
- RectangleF.cs
- FormsIdentity.cs
- TextEditorLists.cs
- SqlHelper.cs
- DesignOnlyAttribute.cs
- WebConfigurationHost.cs
- NamespaceCollection.cs
- BitStack.cs
- ManagementInstaller.cs
- IndexerNameAttribute.cs
- ObjectManager.cs
- ToolStripSystemRenderer.cs
- StylusPointPropertyInfo.cs
- TextRunCache.cs
- SmiRequestExecutor.cs
- ListBindableAttribute.cs
- AttributeTable.cs
- SHA256Managed.cs
- ArgumentOutOfRangeException.cs
- sqlnorm.cs
- AsymmetricKeyExchangeFormatter.cs
- ColorConverter.cs
- MailWriter.cs
- CorePropertiesFilter.cs
- SqlBuffer.cs
- CodeNamespaceImportCollection.cs
- DateRangeEvent.cs
- SystemFonts.cs
- DbgUtil.cs
- BeginEvent.cs
- InfoCardSymmetricCrypto.cs
- InvalidAsynchronousStateException.cs
- WindowsListViewGroup.cs
- Currency.cs
- ProxyWebPartConnectionCollection.cs
- ExcludeFromCodeCoverageAttribute.cs
- SecurityUniqueId.cs
- InheritanceAttribute.cs
- Pair.cs
- DataGrid.cs
- FlowPosition.cs
- DataBoundControlAdapter.cs
- RunInstallerAttribute.cs
- ArgumentNullException.cs
- ProcessModule.cs
- CodeDirectionExpression.cs
- EventsTab.cs
- _SslSessionsCache.cs
- IntranetCredentialPolicy.cs
- SemaphoreSecurity.cs
- ExpandCollapseProviderWrapper.cs
- ISAPIWorkerRequest.cs
- ExtendedPropertiesHandler.cs
- XmlExtensionFunction.cs
- FixedSOMGroup.cs
- DataGridViewCellCollection.cs
- RawStylusSystemGestureInputReport.cs
- PhysicalOps.cs
- Cursor.cs
- ChtmlTextWriter.cs
- IisTraceListener.cs
- CheckBox.cs
- FeatureSupport.cs
- BaseResourcesBuildProvider.cs
- XmlUtf8RawTextWriter.cs
- ConstantSlot.cs
- ThreadStateException.cs
- AutomationPeer.cs
- ExceptionUtil.cs
- DataBindingCollectionEditor.cs
- CodeParameterDeclarationExpression.cs
- NumericPagerField.cs
- HttpModuleActionCollection.cs
- ToolboxComponentsCreatedEventArgs.cs
- LineServices.cs
- JpegBitmapEncoder.cs
- TemplateField.cs
- TreeViewImageKeyConverter.cs
- ConfigurationPropertyAttribute.cs
- PropertyEmitter.cs
- BevelBitmapEffect.cs
- BitmapEffectGroup.cs
- XmlWrappingWriter.cs
- UIElementParaClient.cs
- RequestCachingSection.cs
- Command.cs
- DrawingVisual.cs
- COMException.cs
- SQLDecimalStorage.cs
- ConvertTextFrag.cs
- PointConverter.cs
- PnrpPermission.cs
- SystemWebExtensionsSectionGroup.cs
- Rotation3DKeyFrameCollection.cs
- DivideByZeroException.cs
- dsa.cs
- ResXBuildProvider.cs