Code:
/ FX-1434 / FX-1434 / 1.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
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CredentialCache.cs
- SpecularMaterial.cs
- MenuAutomationPeer.cs
- RegexWriter.cs
- TreeNodeStyleCollection.cs
- LicenseContext.cs
- ProxySimple.cs
- RawStylusInputCustomData.cs
- StateMachineWorkflow.cs
- ClientScriptManager.cs
- Stack.cs
- InterleavedZipPartStream.cs
- Subtree.cs
- SymmetricAlgorithm.cs
- MetadataResolver.cs
- PointLight.cs
- SqlInternalConnectionSmi.cs
- FixedElement.cs
- Rect3D.cs
- Material.cs
- SourceFileInfo.cs
- Avt.cs
- nulltextnavigator.cs
- XmlEncoding.cs
- XmlEventCache.cs
- mactripleDES.cs
- EventLogConfiguration.cs
- GenericsInstances.cs
- Vector3DCollection.cs
- BindStream.cs
- CacheChildrenQuery.cs
- WebRequestModulesSection.cs
- ArrayExtension.cs
- D3DImage.cs
- AtomContentProperty.cs
- ObjectSet.cs
- TextBreakpoint.cs
- SqlUDTStorage.cs
- ParsedAttributeCollection.cs
- DataService.cs
- ParagraphResult.cs
- FileSecurity.cs
- BindingContext.cs
- NamespaceList.cs
- SchemaImporterExtension.cs
- Command.cs
- Point3D.cs
- Relationship.cs
- InfiniteTimeSpanConverter.cs
- TagMapInfo.cs
- TextBounds.cs
- X509RecipientCertificateServiceElement.cs
- EpmTargetTree.cs
- CodeObject.cs
- Int32Rect.cs
- WindowsBrush.cs
- Int64AnimationBase.cs
- WindowsStatic.cs
- TemplateControlParser.cs
- __TransparentProxy.cs
- Label.cs
- Matrix.cs
- IMembershipProvider.cs
- Options.cs
- DistributedTransactionPermission.cs
- PropertyItemInternal.cs
- WebPartPersonalization.cs
- EntityTransaction.cs
- HttpStaticObjectsCollectionWrapper.cs
- TextTreeTextBlock.cs
- PageCatalogPart.cs
- SuppressMessageAttribute.cs
- DefaultAuthorizationContext.cs
- ObsoleteAttribute.cs
- RtType.cs
- SmiRecordBuffer.cs
- ScaleTransform3D.cs
- mediapermission.cs
- PauseStoryboard.cs
- EncodingNLS.cs
- XmlnsDefinitionAttribute.cs
- WCFBuildProvider.cs
- Int32Animation.cs
- ServiceHandle.cs
- StringValidator.cs
- SelectionUIHandler.cs
- PageAction.cs
- SchemaSetCompiler.cs
- SafeJobHandle.cs
- FilteredDataSetHelper.cs
- Misc.cs
- XmlSchemaDatatype.cs
- Listbox.cs
- ToolboxComponentsCreatingEventArgs.cs
- DesignSurfaceEvent.cs
- RuntimeResourceSet.cs
- ExpandableObjectConverter.cs
- ApplicationServicesHostFactory.cs
- DeflateStream.cs
- WindowsImpersonationContext.cs