Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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 sync 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"); } } }
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
- TypeKeyValue.cs
- FullTextBreakpoint.cs
- X509CertificateValidator.cs
- ImageFormat.cs
- MaskedTextBoxDesigner.cs
- GeometryModel3D.cs
- TheQuery.cs
- MethodInfo.cs
- AssemblyBuilder.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- TypeKeyValue.cs
- ActivityExecutorOperation.cs
- CheckBoxRenderer.cs
- TextParentUndoUnit.cs
- WindowInteractionStateTracker.cs
- MachineKey.cs
- PasswordRecoveryDesigner.cs
- ValidatedControlConverter.cs
- TypeExtensionConverter.cs
- ObjectIDGenerator.cs
- WrapperEqualityComparer.cs
- CreateRefExpr.cs
- CompositeDuplexBindingElement.cs
- ForceCopyBuildProvider.cs
- LocatorBase.cs
- XmlReaderSettings.cs
- SafeCryptoHandles.cs
- EntityContainerAssociationSet.cs
- ViewSimplifier.cs
- UpdateException.cs
- PropertyRecord.cs
- PathFigureCollectionConverter.cs
- PromptBuilder.cs
- InfoCardPolicy.cs
- Error.cs
- SetterBase.cs
- SegmentInfo.cs
- BrowserDefinitionCollection.cs
- UriScheme.cs
- MetadataHelper.cs
- CmsInterop.cs
- NotImplementedException.cs
- BufferModesCollection.cs
- ObjectStateManagerMetadata.cs
- HtmlElementEventArgs.cs
- Utils.cs
- AudioFormatConverter.cs
- WorkflowApplicationEventArgs.cs
- DataObjectMethodAttribute.cs
- MimeTypePropertyAttribute.cs
- DataGridTableCollection.cs
- TableLayoutColumnStyleCollection.cs
- EntityDesignerBuildProvider.cs
- InfoCardSymmetricCrypto.cs
- SaveCardRequest.cs
- ToolStripItemImageRenderEventArgs.cs
- EntityDataSourceView.cs
- ApplicationBuildProvider.cs
- AsymmetricKeyExchangeFormatter.cs
- ListItemsPage.cs
- UrlMappingsSection.cs
- MethodToken.cs
- TdsParserStaticMethods.cs
- MatchAttribute.cs
- Propagator.JoinPropagator.SubstitutingCloneVisitor.cs
- DocumentSignatureManager.cs
- PbrsForward.cs
- HttpWebRequest.cs
- Utils.cs
- MultiView.cs
- IndexedString.cs
- CorrelationTokenTypeConvertor.cs
- PopOutPanel.cs
- ReflectionUtil.cs
- MetabaseServerConfig.cs
- EncodingDataItem.cs
- SHA256.cs
- Baml2006SchemaContext.cs
- XPathDocument.cs
- TimeSpanConverter.cs
- Hashtable.cs
- EntityDataSourceView.cs
- InvokeMethodActivity.cs
- HttpContext.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- WebConfigurationFileMap.cs
- StrokeNodeData.cs
- PersonalizationEntry.cs
- WebPartVerbsEventArgs.cs
- GridErrorDlg.cs
- SafeNativeMethods.cs
- Slider.cs
- PeerObject.cs
- Border.cs
- input.cs
- GridViewHeaderRowPresenter.cs
- CanonicalXml.cs
- PeerCredential.cs
- EmbeddedObject.cs
- HttpGetProtocolImporter.cs