Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- CodeTypeParameterCollection.cs
- GenericFlowSwitchHelper.cs
- GridViewHeaderRowPresenter.cs
- ClientBuildManager.cs
- DropDownButton.cs
- MailSettingsSection.cs
- HttpHeaderCollection.cs
- DialogResultConverter.cs
- ServiceModelEnumValidator.cs
- QilTernary.cs
- SchemaName.cs
- ProtocolsConfigurationHandler.cs
- Registry.cs
- BrowserCapabilitiesFactoryBase.cs
- WindowsRebar.cs
- XmlSchemaExternal.cs
- SqlStatistics.cs
- RelationshipEnd.cs
- FixedSOMLineRanges.cs
- Registry.cs
- ObjectContextServiceProvider.cs
- DataObjectMethodAttribute.cs
- XPathAxisIterator.cs
- AspNetSynchronizationContext.cs
- WebConfigurationHost.cs
- CorruptingExceptionCommon.cs
- OutputCacheSettingsSection.cs
- SymbolMethod.cs
- Types.cs
- BaseProcessor.cs
- HtmlProps.cs
- DeferredElementTreeState.cs
- RegexCaptureCollection.cs
- TransactionScope.cs
- DesignerActionListCollection.cs
- BulletChrome.cs
- DefaultTextStoreTextComposition.cs
- DataTrigger.cs
- CompareInfo.cs
- EndpointAddressProcessor.cs
- EmptyQuery.cs
- SequenceDesigner.cs
- PropertyConverter.cs
- AspNetSynchronizationContext.cs
- EditingScope.cs
- PresentationAppDomainManager.cs
- DateTimeUtil.cs
- QuestionEventArgs.cs
- SafeTokenHandle.cs
- LayoutManager.cs
- TimeSpanStorage.cs
- LoginName.cs
- GuidelineSet.cs
- AddressHeader.cs
- ExpressionBuilderCollection.cs
- InvokePattern.cs
- SqlTriggerContext.cs
- DependencyPropertyDescriptor.cs
- OLEDB_Enum.cs
- returneventsaver.cs
- FilterQuery.cs
- SortableBindingList.cs
- ActiveXContainer.cs
- DefaultDialogButtons.cs
- WebPartCollection.cs
- ContextQuery.cs
- HttpErrorTraceRecord.cs
- XamlReaderHelper.cs
- StateInitialization.cs
- CalculatedColumn.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- VisualBasicSettingsHandler.cs
- MergablePropertyAttribute.cs
- ManipulationStartedEventArgs.cs
- ListenerElementsCollection.cs
- XomlSerializationHelpers.cs
- SqlRowUpdatingEvent.cs
- PropagatorResult.cs
- MobileContainerDesigner.cs
- messageonlyhwndwrapper.cs
- Line.cs
- DataGridTableCollection.cs
- _TimerThread.cs
- TypedDataSetSchemaImporterExtension.cs
- RowUpdatedEventArgs.cs
- WindowsSysHeader.cs
- XmlEncodedRawTextWriter.cs
- UrlPath.cs
- TextServicesDisplayAttribute.cs
- Rules.cs
- RegexRunner.cs
- ItemCheckedEvent.cs
- HttpWebRequestElement.cs
- DataGridTablesFactory.cs
- DiscoveryViaBehavior.cs
- SpeakInfo.cs
- ObjectSpanRewriter.cs
- EditorAttribute.cs
- COSERVERINFO.cs
- DefaultTextStoreTextComposition.cs