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
- ConfigurationManagerHelperFactory.cs
- PDBReader.cs
- ResourcePart.cs
- DataGridViewCellLinkedList.cs
- Int64KeyFrameCollection.cs
- ExecutionEngineException.cs
- DetailsViewCommandEventArgs.cs
- CompositeCollectionView.cs
- SimpleHandlerFactory.cs
- Automation.cs
- DetailsViewModeEventArgs.cs
- MessageRpc.cs
- ParentUndoUnit.cs
- coordinatorfactory.cs
- TimeoutStream.cs
- ConstructorNeedsTagAttribute.cs
- BitArray.cs
- KernelTypeValidation.cs
- DbTransaction.cs
- PathSegment.cs
- BaseCodePageEncoding.cs
- BinaryEditor.cs
- MobileUserControlDesigner.cs
- OdbcConnectionHandle.cs
- PropertyValue.cs
- MenuStrip.cs
- ControlBuilderAttribute.cs
- ExecutionTracker.cs
- PathStreamGeometryContext.cs
- SqlPersonalizationProvider.cs
- SQLGuid.cs
- Menu.cs
- SharedPersonalizationStateInfo.cs
- DllNotFoundException.cs
- SamlSecurityToken.cs
- ErrorWebPart.cs
- TrustManager.cs
- NetworkInformationPermission.cs
- ContainerSelectorGlyph.cs
- CatalogUtil.cs
- ChameleonKey.cs
- ConstraintStruct.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ValueUtilsSmi.cs
- FixedSOMLineCollection.cs
- CodeFieldReferenceExpression.cs
- TreeNodeSelectionProcessor.cs
- ParserContext.cs
- SpecularMaterial.cs
- TemplateLookupAction.cs
- WebPartConnectionsConfigureVerb.cs
- DetailsViewPagerRow.cs
- Transform3D.cs
- ColorKeyFrameCollection.cs
- BrowserTree.cs
- _SslState.cs
- SHA256Managed.cs
- DataRelationCollection.cs
- ProbeMatchesApril2005.cs
- MultipleViewPatternIdentifiers.cs
- DataGridViewTextBoxColumn.cs
- PreviewPageInfo.cs
- DropDownButton.cs
- ObjectParameter.cs
- GridViewColumn.cs
- DefaultPropertyAttribute.cs
- InheritanceContextHelper.cs
- XamlRtfConverter.cs
- ConsumerConnectionPointCollection.cs
- HitTestWithGeometryDrawingContextWalker.cs
- WebPartDescriptionCollection.cs
- CodeVariableReferenceExpression.cs
- PostBackTrigger.cs
- CriticalFinalizerObject.cs
- TreeViewImageKeyConverter.cs
- DbConnectionPool.cs
- DataTableClearEvent.cs
- InstanceCreationEditor.cs
- DataTableClearEvent.cs
- sqlmetadatafactory.cs
- HScrollProperties.cs
- UriExt.cs
- SecurityTokenParameters.cs
- SqlDataSourceStatusEventArgs.cs
- ContainerParagraph.cs
- MonthCalendar.cs
- IdentitySection.cs
- OrderToken.cs
- DefaultBindingPropertyAttribute.cs
- OdbcStatementHandle.cs
- ShapeTypeface.cs
- RectAnimationBase.cs
- XamlToRtfWriter.cs
- XmlSchemaNotation.cs
- NetworkAddressChange.cs
- DataGridDesigner.cs
- LineBreakRecord.cs
- PassportAuthenticationEventArgs.cs
- ModelItem.cs
- ToolStripArrowRenderEventArgs.cs