Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- ConfigurationException.cs
- BamlReader.cs
- GetReadStreamResult.cs
- TemplatedMailWebEventProvider.cs
- WindowsGrip.cs
- PtsCache.cs
- ConnectionPoolManager.cs
- ExpressionBindingCollection.cs
- ResourceManagerWrapper.cs
- KeyboardDevice.cs
- BadImageFormatException.cs
- ScriptResourceInfo.cs
- StringArrayConverter.cs
- CompModSwitches.cs
- UserMapPath.cs
- Helpers.cs
- FormsAuthenticationCredentials.cs
- NamespaceMapping.cs
- TextEffect.cs
- filewebrequest.cs
- ActivityMarkupSerializer.cs
- Identity.cs
- Set.cs
- DescendantOverDescendantQuery.cs
- TextServicesCompartment.cs
- _SslSessionsCache.cs
- ByteStream.cs
- HexParser.cs
- OletxDependentTransaction.cs
- GradientBrush.cs
- HashCodeCombiner.cs
- ManipulationPivot.cs
- PropertyMapper.cs
- Dispatcher.cs
- Clipboard.cs
- Rule.cs
- Soap12FormatExtensions.cs
- SqlRowUpdatedEvent.cs
- PropertyNames.cs
- EventNotify.cs
- CompilationUnit.cs
- URIFormatException.cs
- ListBindingHelper.cs
- WindowsMenu.cs
- ValidationSummaryDesigner.cs
- InstanceDataCollectionCollection.cs
- TextTrailingCharacterEllipsis.cs
- ConfigurationStrings.cs
- UpDownBaseDesigner.cs
- Rect.cs
- WindowsGraphics2.cs
- TakeQueryOptionExpression.cs
- StateBag.cs
- TextRange.cs
- ImageListStreamer.cs
- StaticSiteMapProvider.cs
- DebugControllerThread.cs
- FontFamily.cs
- iisPickupDirectory.cs
- SqlConnectionPoolGroupProviderInfo.cs
- CompleteWizardStep.cs
- ObjectDisposedException.cs
- RootBuilder.cs
- ValueQuery.cs
- HttpProfileBase.cs
- StrongNamePublicKeyBlob.cs
- WebPartEditVerb.cs
- XmlBinaryReaderSession.cs
- Calendar.cs
- XmlSchemaExporter.cs
- TableStyle.cs
- ContainerParaClient.cs
- ReliableOutputConnection.cs
- MessageBox.cs
- ClientFactory.cs
- MethodRental.cs
- OutputCacheProfileCollection.cs
- ArraySubsetEnumerator.cs
- DataKeyPropertyAttribute.cs
- BmpBitmapEncoder.cs
- ProviderIncompatibleException.cs
- UTF8Encoding.cs
- Int16AnimationUsingKeyFrames.cs
- OdbcParameterCollection.cs
- SystemBrushes.cs
- latinshape.cs
- SocketAddress.cs
- BitmapData.cs
- GPPOINTF.cs
- XsltArgumentList.cs
- SQLMembershipProvider.cs
- HttpProcessUtility.cs
- RenderDataDrawingContext.cs
- InstanceNormalEvent.cs
- Char.cs
- RoleBoolean.cs
- TextContainerChangeEventArgs.cs
- ValidatorCompatibilityHelper.cs
- SqlBuffer.cs
- RuntimeIdentifierPropertyAttribute.cs