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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EventToken.cs
- StorageModelBuildProvider.cs
- RSAOAEPKeyExchangeDeformatter.cs
- MonitorWrapper.cs
- X509WindowsSecurityToken.cs
- SoapMessage.cs
- CqlQuery.cs
- CompilerScopeManager.cs
- DrawingImage.cs
- EnumBuilder.cs
- SortedDictionary.cs
- ObjectSpanRewriter.cs
- figurelength.cs
- iisPickupDirectory.cs
- COM2AboutBoxPropertyDescriptor.cs
- QueuePathDialog.cs
- OuterGlowBitmapEffect.cs
- MailWriter.cs
- AnnotationComponentChooser.cs
- DataGridViewComponentPropertyGridSite.cs
- MediaPlayer.cs
- GridViewColumnCollection.cs
- BooleanToVisibilityConverter.cs
- XmlBindingWorker.cs
- ClientBuildManagerCallback.cs
- ToolStripDropDown.cs
- MarginCollapsingState.cs
- SectionVisual.cs
- NavigationEventArgs.cs
- DataBindingExpressionBuilder.cs
- DynamicQueryStringParameter.cs
- HierarchicalDataSourceControl.cs
- XPathNode.cs
- PieceNameHelper.cs
- SiteMapProvider.cs
- ConfigurationSection.cs
- StylusPlugInCollection.cs
- IndexedEnumerable.cs
- ComponentResourceManager.cs
- BitConverter.cs
- InternalSafeNativeMethods.cs
- ReaderWriterLock.cs
- TemplateParser.cs
- PointAnimationClockResource.cs
- ToolstripProfessionalRenderer.cs
- NativeCppClassAttribute.cs
- FixedSOMImage.cs
- SqlCacheDependencySection.cs
- ProcessModelSection.cs
- XmlNodeReader.cs
- BitmapEffectOutputConnector.cs
- ThemeInfoAttribute.cs
- DirectoryGroupQuery.cs
- ThemeDirectoryCompiler.cs
- PinnedBufferMemoryStream.cs
- CommunicationException.cs
- RelationshipConstraintValidator.cs
- RSAPKCS1SignatureDeformatter.cs
- XmlSchemaComplexType.cs
- SnapLine.cs
- CompilationUtil.cs
- ExpressionNode.cs
- DateTimeFormatInfoScanner.cs
- PinnedBufferMemoryStream.cs
- SessionEndedEventArgs.cs
- TextEncodedRawTextWriter.cs
- LineSegment.cs
- TypeDelegator.cs
- SafeRightsManagementQueryHandle.cs
- StylusPoint.cs
- SHA1Managed.cs
- DiscoveryReference.cs
- ExtensionQuery.cs
- BamlTreeMap.cs
- WsdlInspector.cs
- ConfigurationException.cs
- XPathNode.cs
- ColorKeyFrameCollection.cs
- TcpChannelHelper.cs
- XmlProcessingInstruction.cs
- Emitter.cs
- BitmapDownload.cs
- input.cs
- UrlMappingsModule.cs
- DocumentAutomationPeer.cs
- BinarySerializer.cs
- BrowsableAttribute.cs
- odbcmetadatafactory.cs
- ListManagerBindingsCollection.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- TemplateControlBuildProvider.cs
- Mapping.cs
- QilParameter.cs
- IndicShape.cs
- ContainerControl.cs
- JulianCalendar.cs
- OleDbPermission.cs
- RenderDataDrawingContext.cs
- VersionedStream.cs
- StylusEventArgs.cs