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
- DesignerSerializerAttribute.cs
- SystemIcmpV4Statistics.cs
- HotSpotCollection.cs
- PEFileReader.cs
- SqlXml.cs
- RoutedUICommand.cs
- TableItemStyle.cs
- CheckBox.cs
- StructuredType.cs
- _NegoStream.cs
- DataListItemEventArgs.cs
- AdjustableArrowCap.cs
- GridViewRow.cs
- UserControl.cs
- StrokeNodeOperations.cs
- securitycriticaldataClass.cs
- ThreadInterruptedException.cs
- HttpBindingExtension.cs
- Compilation.cs
- TraceSwitch.cs
- CharConverter.cs
- CalendarButtonAutomationPeer.cs
- TemplateBuilder.cs
- SqlMethods.cs
- TableParagraph.cs
- SqlBulkCopyColumnMapping.cs
- NestPullup.cs
- PropertyEmitter.cs
- XmlLoader.cs
- Errors.cs
- NamespaceQuery.cs
- DbSourceParameterCollection.cs
- PixelFormats.cs
- StringCollection.cs
- NativeMethods.cs
- AtomServiceDocumentSerializer.cs
- ToggleButton.cs
- SingleSelectRootGridEntry.cs
- DbConnectionOptions.cs
- XamlTemplateSerializer.cs
- Function.cs
- ModulesEntry.cs
- MobileSysDescriptionAttribute.cs
- SchemaImporterExtension.cs
- InstanceLockQueryResult.cs
- SingleStorage.cs
- HashMembershipCondition.cs
- EventItfInfo.cs
- ReadingWritingEntityEventArgs.cs
- SocketElement.cs
- Delegate.cs
- TextRange.cs
- PrinterSettings.cs
- BaseResourcesBuildProvider.cs
- ListViewItemSelectionChangedEvent.cs
- NameValueConfigurationCollection.cs
- FieldDescriptor.cs
- StructuredCompositeActivityDesigner.cs
- KeyPullup.cs
- PropertySet.cs
- CompositionTarget.cs
- PreservationFileWriter.cs
- DropShadowBitmapEffect.cs
- Base64Stream.cs
- BaseWebProxyFinder.cs
- ProviderConnectionPoint.cs
- Slider.cs
- QueueSurrogate.cs
- PageTrueTypeFont.cs
- XmlSignatureProperties.cs
- TreeNodeMouseHoverEvent.cs
- DataGridViewSelectedCellCollection.cs
- ProcessHost.cs
- RootDesignerSerializerAttribute.cs
- CancelEventArgs.cs
- TypeSystem.cs
- ProviderSettings.cs
- WebControlParameterProxy.cs
- Pkcs7Signer.cs
- XmlDataImplementation.cs
- __ConsoleStream.cs
- BoolExpr.cs
- ThreadStateException.cs
- DocumentAutomationPeer.cs
- GreenMethods.cs
- HwndProxyElementProvider.cs
- NextPreviousPagerField.cs
- ISCIIEncoding.cs
- ComponentManagerBroker.cs
- HandleCollector.cs
- EarlyBoundInfo.cs
- FileChangeNotifier.cs
- TrailingSpaceComparer.cs
- URL.cs
- ImportedPolicyConversionContext.cs
- MetaColumn.cs
- FixedDSBuilder.cs
- EmissiveMaterial.cs
- MailMessageEventArgs.cs
- IApplicationTrustManager.cs