Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Runtime / Remoting / ClientSponsor.cs / 1305376 / 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; [System.Security.SecurityCritical] // auto-generated_required [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;} } [System.Security.SecurityCritical] // auto-generated 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; } [System.Security.SecurityCritical] // auto-generated 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 [System.Security.SecurityCritical] public TimeSpan Renewal(ILease lease) { BCLDebug.Trace("REMOTE", "ClientSponsor Renewal "+m_renewalTime); return m_renewalTime; } [System.Security.SecurityCritical] // auto-generated 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 [System.Security.SecurityCritical] public override Object InitializeLifetimeService() { return null; } [System.Security.SecuritySafeCritical] // finalizers should be treated as safe ~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
- _HelperAsyncResults.cs
- DataGridParentRows.cs
- DbConnectionPool.cs
- DispatcherHookEventArgs.cs
- BufferedReceiveManager.cs
- SignatureToken.cs
- EndpointDiscoveryMetadata.cs
- WorkflowFileItem.cs
- ConvertersCollection.cs
- CommentAction.cs
- ConnectionsZoneDesigner.cs
- XmlValidatingReader.cs
- FormView.cs
- Compilation.cs
- BaseServiceProvider.cs
- Mapping.cs
- SplitterDesigner.cs
- MultiSelector.cs
- RuleSetReference.cs
- SelfIssuedAuthAsymmetricKey.cs
- SimpleWorkerRequest.cs
- AttachInfo.cs
- PathFigureCollection.cs
- SystemThemeKey.cs
- Rotation3DKeyFrameCollection.cs
- RequestCacheValidator.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- RectangleConverter.cs
- LicenseException.cs
- SecurityUtils.cs
- OutOfProcStateClientManager.cs
- NativeBuffer.cs
- SecurityException.cs
- EpmCustomContentSerializer.cs
- DateTimeFormat.cs
- SQLDouble.cs
- PropertyChangeTracker.cs
- PropertyConverter.cs
- XmlAutoDetectWriter.cs
- GroupBoxAutomationPeer.cs
- Connector.cs
- ContentFileHelper.cs
- DrawingAttributesDefaultValueFactory.cs
- DataServices.cs
- HttpServerUtilityWrapper.cs
- ProxyDataContractResolver.cs
- PageCache.cs
- Invariant.cs
- XPathNavigatorReader.cs
- Brush.cs
- DataGridTextBox.cs
- MetaType.cs
- WeakReferenceKey.cs
- ConstructorExpr.cs
- DataColumnChangeEvent.cs
- CryptoApi.cs
- ScriptComponentDescriptor.cs
- MethodCallTranslator.cs
- SuspendDesigner.cs
- TableLayoutPanelDesigner.cs
- NTAccount.cs
- ContentDisposition.cs
- EnumMember.cs
- DeflateStream.cs
- ServiceObjectContainer.cs
- HttpValueCollection.cs
- PassportAuthenticationModule.cs
- Timer.cs
- TypeConverterMarkupExtension.cs
- ApplicationDirectory.cs
- CodeAttributeDeclaration.cs
- GridErrorDlg.cs
- HelloOperationAsyncResult.cs
- PassportAuthentication.cs
- DbParameterCollectionHelper.cs
- WinFormsSpinner.cs
- ComponentCommands.cs
- TemplateControl.cs
- uribuilder.cs
- TextParentUndoUnit.cs
- XPathSelfQuery.cs
- XamlPointCollectionSerializer.cs
- SvcMapFileLoader.cs
- AdPostCacheSubstitution.cs
- CompilerWrapper.cs
- OletxTransactionFormatter.cs
- cryptoapiTransform.cs
- DataControlFieldCollection.cs
- GlobalizationSection.cs
- MediaContext.cs
- PowerModeChangedEventArgs.cs
- SmtpAuthenticationManager.cs
- AsymmetricKeyExchangeFormatter.cs
- TileModeValidation.cs
- DataGridTextBox.cs
- assemblycache.cs
- BooleanStorage.cs
- CreateUserWizard.cs
- StubHelpers.cs
- ResourceReferenceExpressionConverter.cs