Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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"); } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ZipIOLocalFileBlock.cs
- RefreshEventArgs.cs
- WorkflowMarkupElementEventArgs.cs
- ConfigurationValues.cs
- TypeLibConverter.cs
- _Semaphore.cs
- BinaryObjectReader.cs
- ConfigurationErrorsException.cs
- Image.cs
- FullTextState.cs
- XmlDocumentFieldSchema.cs
- WebPartConnectVerb.cs
- recordstatescratchpad.cs
- RootBuilder.cs
- SqlDelegatedTransaction.cs
- RemoteWebConfigurationHostServer.cs
- BufferedWebEventProvider.cs
- WebPartManagerInternals.cs
- Camera.cs
- MsmqInputSessionChannelListener.cs
- ExpressionBuilder.cs
- SyndicationLink.cs
- Int64Animation.cs
- MessageBuilder.cs
- IntSecurity.cs
- WebPartManagerDesigner.cs
- HandlerFactoryCache.cs
- ImageIndexConverter.cs
- BackgroundWorker.cs
- safelinkcollection.cs
- InvalidPropValue.cs
- SqlUdtInfo.cs
- ListViewCancelEventArgs.cs
- InputReferenceExpression.cs
- LambdaCompiler.Binary.cs
- EditingCommands.cs
- SoapExtensionReflector.cs
- DocumentPropertiesDialog.cs
- DbMetaDataFactory.cs
- CompilationLock.cs
- AxImporter.cs
- HybridWebProxyFinder.cs
- CatalogZoneAutoFormat.cs
- EntityDataSourceStatementEditor.cs
- ErrorsHelper.cs
- TextRange.cs
- TraceHandlerErrorFormatter.cs
- ActivityContext.cs
- SiteMap.cs
- TokenFactoryCredential.cs
- PerformanceCountersElement.cs
- SizeConverter.cs
- WebPartMinimizeVerb.cs
- ListView.cs
- ProcessThread.cs
- SymbolEqualComparer.cs
- InvokeSchedule.cs
- ProxyWebPartConnectionCollection.cs
- DataGridParentRows.cs
- InternalRelationshipCollection.cs
- XmlSchemaParticle.cs
- SortAction.cs
- BindingMAnagerBase.cs
- StackBuilderSink.cs
- EntityDataSourceUtil.cs
- UiaCoreApi.cs
- RequestDescription.cs
- EqualityComparer.cs
- MultilineStringConverter.cs
- XmlSchemaSet.cs
- MachineKeySection.cs
- TargetException.cs
- Control.cs
- SqlError.cs
- ActivityTrace.cs
- DotExpr.cs
- OleDbPermission.cs
- TextAdaptor.cs
- DynamicObject.cs
- CompilerResults.cs
- ToolStripDropDownClosedEventArgs.cs
- DataSourceNameHandler.cs
- FigureParaClient.cs
- MD5.cs
- ToolStripContentPanelRenderEventArgs.cs
- ComponentConverter.cs
- RequestCache.cs
- __FastResourceComparer.cs
- GridProviderWrapper.cs
- ExpressionBuilderContext.cs
- CqlQuery.cs
- BindingContext.cs
- OrderedDictionary.cs
- Track.cs
- PnrpPeerResolverElement.cs
- UseLicense.cs
- SoapCodeExporter.cs
- TransformGroup.cs
- Component.cs
- UrlPath.cs