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
- TraceSection.cs
- WebPartZoneBase.cs
- ResXDataNode.cs
- ColorConverter.cs
- ClusterRegistryConfigurationProvider.cs
- SharedStatics.cs
- TransformProviderWrapper.cs
- ViewCellSlot.cs
- ADConnectionHelper.cs
- Sql8ConformanceChecker.cs
- PeerTransportListenAddressValidator.cs
- QuaternionAnimation.cs
- OneToOneMappingSerializer.cs
- DataProviderNameConverter.cs
- DataGridViewRowStateChangedEventArgs.cs
- StringWriter.cs
- ExpressionBuilder.cs
- CheckBoxBaseAdapter.cs
- PhysicalAddress.cs
- BatchWriter.cs
- RichTextBoxDesigner.cs
- EditorZone.cs
- PropertyChangedEventManager.cs
- InvalidPropValue.cs
- Dictionary.cs
- ServiceModelEnumValidator.cs
- SessionStateSection.cs
- ScriptReferenceBase.cs
- StyleSelector.cs
- TableStyle.cs
- ModuleConfigurationInfo.cs
- CustomExpression.cs
- BindUriHelper.cs
- OracleParameter.cs
- ISFClipboardData.cs
- SafeIUnknown.cs
- ConfigurationConverterBase.cs
- CuspData.cs
- ValueType.cs
- TableCellAutomationPeer.cs
- Calendar.cs
- RectangleGeometry.cs
- FileNameEditor.cs
- XmlArrayItemAttribute.cs
- IgnoreFlushAndCloseStream.cs
- C14NUtil.cs
- Span.cs
- GradientBrush.cs
- FontStretch.cs
- ECDiffieHellman.cs
- ExpressionBinding.cs
- SQLDouble.cs
- FilterException.cs
- CngKeyBlobFormat.cs
- DetailsViewRow.cs
- _FtpControlStream.cs
- FilterQuery.cs
- HttpRequestTraceRecord.cs
- DependentList.cs
- ConnectionOrientedTransportChannelListener.cs
- DataSourceControl.cs
- ScriptRegistrationManager.cs
- ToolStripItem.cs
- TextServicesDisplayAttribute.cs
- GroupDescription.cs
- EntityContainerRelationshipSetEnd.cs
- ResourceIDHelper.cs
- nulltextnavigator.cs
- SequenceDesigner.cs
- EmbeddedObject.cs
- ProvidersHelper.cs
- ListBoxChrome.cs
- OrderedDictionaryStateHelper.cs
- CheckBoxStandardAdapter.cs
- ListItemsCollectionEditor.cs
- ContextMenu.cs
- CodeSubDirectoriesCollection.cs
- ComplexPropertyEntry.cs
- WebEventTraceProvider.cs
- SessionStateModule.cs
- WCFBuildProvider.cs
- StringValidator.cs
- SocketPermission.cs
- DictionaryContent.cs
- SqlClientFactory.cs
- SettingsProperty.cs
- MessageDecoder.cs
- FontWeightConverter.cs
- EventLogPermission.cs
- DefaultMemberAttribute.cs
- ManagementPath.cs
- XmlUtil.cs
- RoutedEventValueSerializer.cs
- WebPartZoneBase.cs
- ModelItemExtensions.cs
- AnnotationComponentChooser.cs
- SchemaContext.cs
- EncodingFallbackAwareXmlTextWriter.cs
- RowCache.cs
- SchemaMapping.cs