Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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 [....] 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. // // ==--== //+---------------------------------------------------------------------------- // // File: ClientSponsor.cs // // Contents: Agent for keeping Server Object's lifetime in [....] 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Aggregates.cs
- Timer.cs
- Html32TextWriter.cs
- SystemGatewayIPAddressInformation.cs
- PropertyCollection.cs
- LineServices.cs
- CodeSubDirectoriesCollection.cs
- DebugView.cs
- WindowsComboBox.cs
- WeakRefEnumerator.cs
- _UriSyntax.cs
- PerformanceCounterManager.cs
- XdrBuilder.cs
- CacheSection.cs
- Utilities.cs
- MergePropertyDescriptor.cs
- LinkedList.cs
- Vars.cs
- EntityClientCacheEntry.cs
- HostedHttpRequestAsyncResult.cs
- QilCloneVisitor.cs
- ChtmlSelectionListAdapter.cs
- MetadataArtifactLoader.cs
- HandlerWithFactory.cs
- CipherData.cs
- SoapFault.cs
- AsyncCodeActivity.cs
- TTSEngineProxy.cs
- TransactionManagerProxy.cs
- CollectionViewGroup.cs
- WorkflowMarkupElementEventArgs.cs
- FormsAuthenticationEventArgs.cs
- HostSecurityManager.cs
- RoleManagerSection.cs
- EventsTab.cs
- SizeFConverter.cs
- UserControlParser.cs
- SupportedAddressingMode.cs
- RecognizedWordUnit.cs
- ExceptQueryOperator.cs
- MappingModelBuildProvider.cs
- UInt16Storage.cs
- WebEvents.cs
- Currency.cs
- PersonalizationStateInfo.cs
- Rotation3DAnimationBase.cs
- ScheduleChanges.cs
- UnsafeNativeMethods.cs
- ExtractCollection.cs
- AutomationPatternInfo.cs
- AppDomainFactory.cs
- TerminateWorkflow.cs
- ConnectionStringSettings.cs
- VariantWrapper.cs
- PageContent.cs
- OracleTransaction.cs
- ListDataBindEventArgs.cs
- Bits.cs
- AccessorTable.cs
- BooleanConverter.cs
- OrderByExpression.cs
- ResourceManager.cs
- ImportedPolicyConversionContext.cs
- ReadContentAsBinaryHelper.cs
- ColumnWidthChangedEvent.cs
- XmlSchemaDocumentation.cs
- RequestCachingSection.cs
- FormsAuthenticationModule.cs
- ModifierKeysValueSerializer.cs
- CodeGroup.cs
- SplashScreen.cs
- ListViewContainer.cs
- DataGridViewDataErrorEventArgs.cs
- CompositionAdorner.cs
- EndPoint.cs
- AvTrace.cs
- MatrixAnimationUsingKeyFrames.cs
- PersonalizationDictionary.cs
- MessagePartDescriptionCollection.cs
- PluralizationServiceUtil.cs
- SqlRemoveConstantOrderBy.cs
- SizeConverter.cs
- ReferenceEqualityComparer.cs
- IsolatedStoragePermission.cs
- StructureChangedEventArgs.cs
- QueryCoreOp.cs
- EncodingDataItem.cs
- Comparer.cs
- SafeSecurityHandles.cs
- SortKey.cs
- StyleSheetRefUrlEditor.cs
- DataContractSerializerFaultFormatter.cs
- EllipseGeometry.cs
- TemplateComponentConnector.cs
- GCHandleCookieTable.cs
- GridViewSortEventArgs.cs
- IdentityReference.cs
- CqlErrorHelper.cs
- MetadataItem_Static.cs
- ProfilePropertyNameValidator.cs