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
- PageContentAsyncResult.cs
- ListDesigner.cs
- DynamicValidatorEventArgs.cs
- ToggleButton.cs
- TabControl.cs
- DescendantBaseQuery.cs
- DetailsViewUpdateEventArgs.cs
- ModifierKeysValueSerializer.cs
- ConfigurationElementCollection.cs
- DESCryptoServiceProvider.cs
- PathParser.cs
- WebPartConnectionsConfigureVerb.cs
- DependencyObjectProvider.cs
- PagesSection.cs
- TransactionFilter.cs
- StringInfo.cs
- sqlstateclientmanager.cs
- AuthStoreRoleProvider.cs
- TypeContext.cs
- ZoomPercentageConverter.cs
- DropAnimation.xaml.cs
- WindowsTokenRoleProvider.cs
- XPathItem.cs
- ClusterSafeNativeMethods.cs
- KeyFrames.cs
- TraceUtility.cs
- SqlStream.cs
- RepeatButton.cs
- HtmlLabelAdapter.cs
- ElementAtQueryOperator.cs
- CodeSubDirectoriesCollection.cs
- XhtmlBasicValidatorAdapter.cs
- WebPartZone.cs
- LoginNameDesigner.cs
- Logging.cs
- GatewayIPAddressInformationCollection.cs
- RangeValidator.cs
- regiisutil.cs
- CompoundFileStorageReference.cs
- SqlCommandSet.cs
- Models.cs
- RepeatBehavior.cs
- CompilerInfo.cs
- RightsManagementManager.cs
- LoginStatusDesigner.cs
- TreeNodeBindingCollection.cs
- ImageField.cs
- CodeEntryPointMethod.cs
- AssociationProvider.cs
- RouteItem.cs
- NGCUIElementCollectionSerializerAsync.cs
- DataExpression.cs
- indexingfiltermarshaler.cs
- DtrList.cs
- RowUpdatingEventArgs.cs
- WorkflowFileItem.cs
- DataGridViewColumnHeaderCell.cs
- precedingquery.cs
- TextTreeUndo.cs
- SecurityIdentifierElementCollection.cs
- MatrixKeyFrameCollection.cs
- CodeFieldReferenceExpression.cs
- QilReference.cs
- ConnectionConsumerAttribute.cs
- TargetPerspective.cs
- TextTreeRootNode.cs
- DelegatedStream.cs
- ObjectConverter.cs
- AttributeUsageAttribute.cs
- InvalidDataException.cs
- StylusShape.cs
- MetadataHelper.cs
- PageRanges.cs
- AlphaSortedEnumConverter.cs
- Funcletizer.cs
- FileLoadException.cs
- ChineseLunisolarCalendar.cs
- ArcSegment.cs
- HttpProfileBase.cs
- XmlSchemaAny.cs
- XpsFixedDocumentReaderWriter.cs
- BasicHttpBindingElement.cs
- Animatable.cs
- PanelStyle.cs
- OleDbMetaDataFactory.cs
- ToolStripControlHost.cs
- CatalogPartCollection.cs
- TakeOrSkipWhileQueryOperator.cs
- XmlUTF8TextReader.cs
- SmiEventSink_Default.cs
- TileModeValidation.cs
- Label.cs
- MenuBase.cs
- TraceContext.cs
- Behavior.cs
- TimeEnumHelper.cs
- CodeBlockBuilder.cs
- ConfigurationCollectionAttribute.cs
- ObjectDataSourceMethodEventArgs.cs
- X509WindowsSecurityToken.cs