Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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"); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeAttributeArgument.cs
- DataSourceSelectArguments.cs
- GridViewPageEventArgs.cs
- RowToParametersTransformer.cs
- DropDownList.cs
- TypeElement.cs
- ComponentEvent.cs
- CurrencyManager.cs
- _NetRes.cs
- SqlDataAdapter.cs
- CompressEmulationStream.cs
- EntityCommandExecutionException.cs
- DataGridViewAdvancedBorderStyle.cs
- StickyNoteHelper.cs
- URI.cs
- WebServiceClientProxyGenerator.cs
- QuaternionRotation3D.cs
- CounterSampleCalculator.cs
- ObjectResult.cs
- UrlMappingCollection.cs
- ConnectionStringSettingsCollection.cs
- SqlClientFactory.cs
- OciLobLocator.cs
- X509CertificateClaimSet.cs
- DecoderNLS.cs
- WebPartTransformer.cs
- VisualTarget.cs
- SpellerError.cs
- DataPagerFieldItem.cs
- Authorization.cs
- ContractListAdapter.cs
- CharacterHit.cs
- UserValidatedEventArgs.cs
- EmbeddedMailObjectCollectionEditor.cs
- PolyQuadraticBezierSegment.cs
- ShutDownListener.cs
- FileDialogCustomPlacesCollection.cs
- ProviderUtil.cs
- DoubleAverageAggregationOperator.cs
- RemoteWebConfigurationHostServer.cs
- PageThemeParser.cs
- XmlNode.cs
- ToolStripTextBox.cs
- DataGridColumnCollection.cs
- DataServiceRequestException.cs
- DynamicResourceExtension.cs
- NullExtension.cs
- GetCardDetailsRequest.cs
- BounceEase.cs
- DelayedRegex.cs
- DataServiceHost.cs
- SQLInt32.cs
- WebBrowserDocumentCompletedEventHandler.cs
- RegexMatch.cs
- SectionInput.cs
- RenderingEventArgs.cs
- InternalsVisibleToAttribute.cs
- StateItem.cs
- ApplicationSettingsBase.cs
- DiscoveryClientDocuments.cs
- BufferModeSettings.cs
- BufferedGraphicsContext.cs
- DataGridViewEditingControlShowingEventArgs.cs
- TableCell.cs
- ScriptingJsonSerializationSection.cs
- FlowLayout.cs
- ScrollProperties.cs
- PeerOutputChannel.cs
- TreeSet.cs
- ClaimSet.cs
- PlaceHolder.cs
- DispatchRuntime.cs
- ErrorActivity.cs
- DBConnection.cs
- FormatConvertedBitmap.cs
- BasicExpandProvider.cs
- Int32Collection.cs
- FilteredAttributeCollection.cs
- StylusPointDescription.cs
- WinFormsSpinner.cs
- EdgeProfileValidation.cs
- BezierSegment.cs
- VisualStateManager.cs
- TemplateNameScope.cs
- DataGridDetailsPresenter.cs
- DataGridRelationshipRow.cs
- NumericUpDownAcceleration.cs
- XmlImplementation.cs
- OdbcUtils.cs
- ColorDialog.cs
- CrossSiteScriptingValidation.cs
- JulianCalendar.cs
- ThreadTrace.cs
- DataBindingExpressionBuilder.cs
- _NegoStream.cs
- DictationGrammar.cs
- ReflectionServiceProvider.cs
- TailCallAnalyzer.cs
- LambdaExpression.cs
- DocumentViewerConstants.cs