Code:
/ DotNET / DotNET / 8.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
- XmlSchemaIdentityConstraint.cs
- RuleSettings.cs
- FragmentQuery.cs
- ResourcesBuildProvider.cs
- MgmtConfigurationRecord.cs
- OdbcUtils.cs
- Sql8ConformanceChecker.cs
- GZipUtils.cs
- ToolStripDropDownClosingEventArgs.cs
- AssociationTypeEmitter.cs
- AssemblyBuilderData.cs
- FirstMatchCodeGroup.cs
- AttachedAnnotation.cs
- XmlSchemaGroupRef.cs
- X509Certificate.cs
- UnionExpr.cs
- CompilationUtil.cs
- _FtpControlStream.cs
- SystemIPInterfaceProperties.cs
- ImageField.cs
- MdImport.cs
- VersionPair.cs
- MissingMemberException.cs
- SessionMode.cs
- CodeTypeParameterCollection.cs
- ByteConverter.cs
- MutexSecurity.cs
- WebPermission.cs
- ToolboxSnapDragDropEventArgs.cs
- WebServicesSection.cs
- DataPagerCommandEventArgs.cs
- DragCompletedEventArgs.cs
- SelectionEditingBehavior.cs
- UndirectedGraph.cs
- CompiledXpathExpr.cs
- RangeValuePattern.cs
- ConfigXmlAttribute.cs
- GridProviderWrapper.cs
- ChtmlTextWriter.cs
- StreamGeometryContext.cs
- DesignTimeTemplateParser.cs
- AppDomainShutdownMonitor.cs
- Triangle.cs
- XPathScanner.cs
- WebHttpBindingElement.cs
- RequestTimeoutManager.cs
- StackSpiller.cs
- CompositeControl.cs
- ConsoleKeyInfo.cs
- WebServiceMethodData.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- FileRecordSequenceCompletedAsyncResult.cs
- Composition.cs
- MetadataFile.cs
- GlyphShapingProperties.cs
- ping.cs
- MessageBuilder.cs
- RemotingSurrogateSelector.cs
- PassportIdentity.cs
- WindowsGraphicsWrapper.cs
- PlatformNotSupportedException.cs
- OleDbException.cs
- JsonServiceDocumentSerializer.cs
- FunctionUpdateCommand.cs
- SoapSchemaExporter.cs
- PhysicalOps.cs
- AssociationTypeEmitter.cs
- RealizationDrawingContextWalker.cs
- ViewBox.cs
- DataSourceControlBuilder.cs
- ShaderEffect.cs
- WebPartEditorOkVerb.cs
- TypeConverterHelper.cs
- ADMembershipUser.cs
- ImageCollectionEditor.cs
- SafeCoTaskMem.cs
- ScrollChangedEventArgs.cs
- DataBoundControlAdapter.cs
- UserNamePasswordValidationMode.cs
- SqlCachedBuffer.cs
- ObjectViewQueryResultData.cs
- AccessControlList.cs
- MediaElement.cs
- PropertyChangeTracker.cs
- MachineKeySection.cs
- XmlRootAttribute.cs
- PeerNearMe.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- StylusPointPropertyInfoDefaults.cs
- VirtualDirectoryMappingCollection.cs
- EventLogEntryCollection.cs
- DataBindingList.cs
- DataGridSortCommandEventArgs.cs
- WindowsFormsSynchronizationContext.cs
- SqlInfoMessageEvent.cs
- FileUpload.cs
- CultureMapper.cs
- StoreItemCollection.Loader.cs
- WebHttpSecurity.cs
- FixedSOMGroup.cs