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

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DispatcherEventArgs.cs
- MemberAssignmentAnalysis.cs
- AttributeUsageAttribute.cs
- FilterEventArgs.cs
- AnonymousIdentificationSection.cs
- MetaData.cs
- PipelineModuleStepContainer.cs
- Operators.cs
- RedirectionProxy.cs
- ReturnType.cs
- EntityClassGenerator.cs
- Console.cs
- CompModSwitches.cs
- Int32Rect.cs
- ToolStripSeparator.cs
- SafeNativeMethods.cs
- ImageMapEventArgs.cs
- FormsAuthenticationCredentials.cs
- AggregatePushdown.cs
- CodeNamespace.cs
- Header.cs
- DispatchWrapper.cs
- ProtectedConfigurationSection.cs
- counter.cs
- ConnectionStringSettings.cs
- Button.cs
- ToolStripDropDownClosingEventArgs.cs
- SortedList.cs
- SspiSecurityToken.cs
- AlignmentXValidation.cs
- MessageQueueCriteria.cs
- LinqDataSourceView.cs
- Converter.cs
- ProfileGroupSettings.cs
- ConfigsHelper.cs
- StrokeNodeOperations.cs
- RegularExpressionValidator.cs
- WebBrowserBase.cs
- TrustManager.cs
- SpinLock.cs
- WmlFormAdapter.cs
- CompilationSection.cs
- CompositeFontParser.cs
- X509ChainPolicy.cs
- XmlDocumentFragment.cs
- XmlTextEncoder.cs
- RootBrowserWindowProxy.cs
- shaperfactoryquerycacheentry.cs
- XmlExtensionFunction.cs
- ImageDrawing.cs
- SyntaxCheck.cs
- IconHelper.cs
- CodePageUtils.cs
- ModuleElement.cs
- LayoutTable.cs
- DbConnectionPoolGroup.cs
- TrackingMemoryStreamFactory.cs
- ResourceDefaultValueAttribute.cs
- LogSwitch.cs
- RowUpdatedEventArgs.cs
- StructuredProperty.cs
- MobileControlPersister.cs
- LongPath.cs
- SqlUdtInfo.cs
- RegexStringValidator.cs
- SQlBooleanStorage.cs
- TCPClient.cs
- SystemInfo.cs
- SqlDataSourceStatusEventArgs.cs
- safemediahandle.cs
- SqlDelegatedTransaction.cs
- ResolvedKeyFrameEntry.cs
- XsltConvert.cs
- WindowsIdentity.cs
- ErrorRuntimeConfig.cs
- coordinatorscratchpad.cs
- WeakEventTable.cs
- BoundColumn.cs
- CompilerTypeWithParams.cs
- CustomValidator.cs
- IPPacketInformation.cs
- Tablet.cs
- TraceSection.cs
- XPathNodeHelper.cs
- ObjectItemNoOpAssemblyLoader.cs
- FileSystemEventArgs.cs
- StreamInfo.cs
- Privilege.cs
- EditorZoneBase.cs
- ProcessHostFactoryHelper.cs
- HtmlUtf8RawTextWriter.cs
- UxThemeWrapper.cs
- SiteMapNodeItem.cs
- FontNamesConverter.cs
- DataListItem.cs
- WebPartConnectionCollection.cs
- ListItemCollection.cs
- ELinqQueryState.cs
- ObfuscateAssemblyAttribute.cs
- FixedPageStructure.cs