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
- NegotiateStream.cs
- TreePrinter.cs
- LeafCellTreeNode.cs
- HotSpot.cs
- MarshalByRefObject.cs
- ServerIdentity.cs
- _Connection.cs
- ClickablePoint.cs
- Helpers.cs
- ProfileInfo.cs
- Enumerable.cs
- WebScriptEnablingBehavior.cs
- AddInPipelineAttributes.cs
- DataGridViewComboBoxEditingControl.cs
- SerializationInfo.cs
- InternalConfigSettingsFactory.cs
- DynamicFilter.cs
- DefaultDiscoveryServiceExtension.cs
- basecomparevalidator.cs
- ContextBase.cs
- ListViewSortEventArgs.cs
- ProfileBuildProvider.cs
- MatchingStyle.cs
- WebBrowserNavigatingEventHandler.cs
- ScrollChrome.cs
- AssemblyBuilder.cs
- WorkerRequest.cs
- SizeAnimationBase.cs
- DataGridViewColumn.cs
- ToolStripSplitButton.cs
- MappingException.cs
- XsltSettings.cs
- PinnedBufferMemoryStream.cs
- PeerCredential.cs
- MergeFilterQuery.cs
- Document.cs
- MailBnfHelper.cs
- CqlIdentifiers.cs
- CreatingCookieEventArgs.cs
- DecimalConstantAttribute.cs
- TypedRowHandler.cs
- Vector3DAnimation.cs
- LiteralControl.cs
- SlipBehavior.cs
- DynamicResourceExtensionConverter.cs
- NamespaceMapping.cs
- VisualStyleInformation.cs
- SqlDataSourceConfigureSortForm.cs
- AttachedAnnotationChangedEventArgs.cs
- BypassElementCollection.cs
- DataGridComponentEditor.cs
- RtfControlWordInfo.cs
- LinkedResourceCollection.cs
- Int32Rect.cs
- SerializationFieldInfo.cs
- ButtonFlatAdapter.cs
- GridViewCancelEditEventArgs.cs
- MarkupExtensionParser.cs
- ProxyAttribute.cs
- FileEnumerator.cs
- BinaryReader.cs
- ParameterToken.cs
- ListViewItemSelectionChangedEvent.cs
- GenericRootAutomationPeer.cs
- securitycriticaldata.cs
- HierarchicalDataBoundControlAdapter.cs
- HandlerMappingMemo.cs
- WindowsSecurityToken.cs
- BulletChrome.cs
- WindowsTab.cs
- HttpConfigurationContext.cs
- InvokeWebServiceDesigner.cs
- ListViewItem.cs
- ParseElement.cs
- WhitespaceRuleReader.cs
- VisualTarget.cs
- TagPrefixAttribute.cs
- UserControlParser.cs
- AppSettingsReader.cs
- QilExpression.cs
- EdmToObjectNamespaceMap.cs
- MediaScriptCommandRoutedEventArgs.cs
- BindingExpressionUncommonField.cs
- MetaTable.cs
- WSFederationHttpSecurityElement.cs
- ExponentialEase.cs
- NetPeerTcpBindingCollectionElement.cs
- ProcessManager.cs
- EntityType.cs
- DashStyles.cs
- VisemeEventArgs.cs
- QilUnary.cs
- TimeSpanStorage.cs
- SvcMapFile.cs
- DataGridViewColumnCollection.cs
- EndpointAddressMessageFilterTable.cs
- DBCommand.cs
- FilterableAttribute.cs
- HandleExceptionArgs.cs
- XmlUtil.cs