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
- MetadataItemEmitter.cs
- WindowsTitleBar.cs
- PageParserFilter.cs
- ChameleonKey.cs
- XmlSchemaSimpleTypeRestriction.cs
- HMACRIPEMD160.cs
- WebPartZone.cs
- StringToken.cs
- RetrieveVirtualItemEventArgs.cs
- ObjectToIdCache.cs
- QueryPageSettingsEventArgs.cs
- RouteCollection.cs
- InkCanvasAutomationPeer.cs
- BufferedWebEventProvider.cs
- RowsCopiedEventArgs.cs
- PrinterSettings.cs
- EventLogPermissionEntry.cs
- ApplicationActivator.cs
- RepeaterCommandEventArgs.cs
- CacheDependency.cs
- Events.cs
- BrowserCapabilitiesCompiler.cs
- ScriptingScriptResourceHandlerSection.cs
- QilPatternFactory.cs
- TextInfo.cs
- DirectoryNotFoundException.cs
- GridViewRow.cs
- RecognizerBase.cs
- XmlText.cs
- ClientEventManager.cs
- CounterSetInstanceCounterDataSet.cs
- FileSystemEnumerable.cs
- HwndStylusInputProvider.cs
- DesignerVerb.cs
- BrowserCapabilitiesCodeGenerator.cs
- ClientEndpointLoader.cs
- PolicyVersion.cs
- ExpressionLink.cs
- TimeSpanMinutesConverter.cs
- SerTrace.cs
- XmlSchemaType.cs
- FileLevelControlBuilderAttribute.cs
- sqlstateclientmanager.cs
- WebServiceEnumData.cs
- PropertyKey.cs
- TreeViewImageIndexConverter.cs
- KeyValueConfigurationElement.cs
- SqlNotificationEventArgs.cs
- ClosableStream.cs
- ElementsClipboardData.cs
- DataStreams.cs
- OleCmdHelper.cs
- ObjectContext.cs
- WebEventTraceProvider.cs
- ListViewCommandEventArgs.cs
- RegexInterpreter.cs
- Serializer.cs
- validationstate.cs
- DataBoundControlActionList.cs
- DBCSCodePageEncoding.cs
- SQLConvert.cs
- ThreadAttributes.cs
- ExpressionUtilities.cs
- OptimalBreakSession.cs
- AutomationPropertyInfo.cs
- SqlConnectionString.cs
- XamlBrushSerializer.cs
- ProtocolsSection.cs
- DesignerActionUIService.cs
- OverflowException.cs
- SetState.cs
- Span.cs
- HtmlTernaryTree.cs
- DrawingImage.cs
- StorageAssociationTypeMapping.cs
- isolationinterop.cs
- OutputCacheSettings.cs
- ToolStripPanel.cs
- HelloMessageCD1.cs
- XPathNodePointer.cs
- DataGridViewBindingCompleteEventArgs.cs
- NativeMethods.cs
- Logging.cs
- AsymmetricAlgorithm.cs
- MarginCollapsingState.cs
- StrokeRenderer.cs
- FormattedText.cs
- WebPartConnectionsDisconnectVerb.cs
- LinkArea.cs
- XPathNavigator.cs
- Config.cs
- ValidatingPropertiesEventArgs.cs
- DiscoveryClientDuplexChannel.cs
- LayeredChannelFactory.cs
- ProfilePropertyNameValidator.cs
- SimpleLine.cs
- DetailsViewAutoFormat.cs
- PackUriHelper.cs
- WebProxyScriptElement.cs
- XmlMemberMapping.cs