Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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"); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DropDownButton.cs
- ConfigPathUtility.cs
- GroupStyle.cs
- CheckBox.cs
- XPathNodeIterator.cs
- SQLBytes.cs
- TogglePatternIdentifiers.cs
- HwndSourceParameters.cs
- DefaultSerializationProviderAttribute.cs
- NamedPermissionSet.cs
- Sentence.cs
- ValidationSummaryDesigner.cs
- ErrorStyle.cs
- Configuration.cs
- ConfigXmlElement.cs
- FileAuthorizationModule.cs
- Decoder.cs
- FieldToken.cs
- TypeNameConverter.cs
- ContentHostHelper.cs
- QueryOpcode.cs
- SrgsDocumentParser.cs
- NamedElement.cs
- TimersDescriptionAttribute.cs
- InplaceBitmapMetadataWriter.cs
- SerialReceived.cs
- SQLBytes.cs
- _NestedMultipleAsyncResult.cs
- InfoCardAsymmetricCrypto.cs
- KeyValuePair.cs
- LayoutTable.cs
- Journal.cs
- PermissionSetTriple.cs
- UriSection.cs
- CompositeClientFormatter.cs
- DataGridItem.cs
- CallContext.cs
- _UriSyntax.cs
- DrawListViewItemEventArgs.cs
- XmlSubtreeReader.cs
- TerminatorSinks.cs
- SimplePropertyEntry.cs
- RangeValueProviderWrapper.cs
- Cursor.cs
- SupportsEventValidationAttribute.cs
- SiteIdentityPermission.cs
- ResourceDescriptionAttribute.cs
- HttpHandlerAction.cs
- InitializingNewItemEventArgs.cs
- DataViewManager.cs
- HexParser.cs
- CodePropertyReferenceExpression.cs
- PreservationFileReader.cs
- InputMethod.cs
- EdmRelationshipRoleAttribute.cs
- BinHexEncoding.cs
- MimeObjectFactory.cs
- BinaryFormatterWriter.cs
- diagnosticsswitches.cs
- translator.cs
- BuildDependencySet.cs
- CompositeDataBoundControl.cs
- OutputCacheSettingsSection.cs
- PairComparer.cs
- PrePrepareMethodAttribute.cs
- TraceListeners.cs
- HierarchicalDataSourceDesigner.cs
- InvocationExpression.cs
- WebDisplayNameAttribute.cs
- ToolStripTemplateNode.cs
- ExecutedRoutedEventArgs.cs
- StaticExtension.cs
- RefType.cs
- ValidatorAttribute.cs
- WeakEventTable.cs
- CSharpCodeProvider.cs
- BufferBuilder.cs
- Error.cs
- Point.cs
- SqlDataSourceRefreshSchemaForm.cs
- DataBindingCollection.cs
- EpmContentDeSerializerBase.cs
- KerberosSecurityTokenProvider.cs
- DefaultValueTypeConverter.cs
- XmlUtil.cs
- TypeNameParser.cs
- SqlDataSourceStatusEventArgs.cs
- SerializationTrace.cs
- ObjectDataSourceMethodEventArgs.cs
- dtdvalidator.cs
- FixedSOMTableCell.cs
- DoubleLinkList.cs
- HttpHeaderCollection.cs
- AttributeTable.cs
- JournalNavigationScope.cs
- MatchingStyle.cs
- IPHostEntry.cs
- PerfProviderCollection.cs
- TrustManagerMoreInformation.cs
- TextTreeRootTextBlock.cs