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
- FlowLayout.cs
- AccessibleObject.cs
- SplitterEvent.cs
- BinaryObjectInfo.cs
- SQLMembershipProvider.cs
- EventProperty.cs
- StringUtil.cs
- DrawingContextFlattener.cs
- ZipIOExtraField.cs
- InternalCache.cs
- ApplicationCommands.cs
- TextInfo.cs
- DataBoundControlParameterTarget.cs
- ManagementEventWatcher.cs
- ButtonBase.cs
- ConnectionDemuxer.cs
- CodeSnippetCompileUnit.cs
- TextEmbeddedObject.cs
- ImageClickEventArgs.cs
- TableLayoutStyle.cs
- MessageHeaderDescriptionCollection.cs
- WorkflowDesignerMessageFilter.cs
- Hyperlink.cs
- ZipFileInfo.cs
- OdbcConnectionString.cs
- ExeConfigurationFileMap.cs
- InteropAutomationProvider.cs
- TextEditorCharacters.cs
- ListViewItemSelectionChangedEvent.cs
- FlowNode.cs
- PrivilegeNotHeldException.cs
- CollectionChangeEventArgs.cs
- NameObjectCollectionBase.cs
- CodePageUtils.cs
- KeyFrames.cs
- ApplicationDirectoryMembershipCondition.cs
- UnicastIPAddressInformationCollection.cs
- UshortList2.cs
- FacetEnabledSchemaElement.cs
- EntryIndex.cs
- ContextMenuStrip.cs
- AnnotationObservableCollection.cs
- RecipientInfo.cs
- RelationshipEndCollection.cs
- SettingsPropertyValueCollection.cs
- FilterException.cs
- unsafenativemethodsother.cs
- FilterElement.cs
- XslTransform.cs
- DesignerOptionService.cs
- SecureConversationVersion.cs
- GestureRecognizer.cs
- ColumnWidthChangedEvent.cs
- UrlAuthFailedErrorFormatter.cs
- HttpResponse.cs
- TextRangeAdaptor.cs
- TypeLoadException.cs
- PerformanceCounterPermissionAttribute.cs
- SHA512.cs
- ChangeDirector.cs
- DocumentPageHost.cs
- MailMessage.cs
- PopupRoot.cs
- WindowsTokenRoleProvider.cs
- GenericWebPart.cs
- ZipFileInfo.cs
- AdRotator.cs
- StrongNameHelpers.cs
- Int32CollectionValueSerializer.cs
- httpstaticobjectscollection.cs
- DataFormats.cs
- Brush.cs
- Selection.cs
- Mouse.cs
- MessageQueuePermissionAttribute.cs
- Drawing.cs
- BeginEvent.cs
- DragDeltaEventArgs.cs
- LogStore.cs
- Baml2006SchemaContext.cs
- BrushMappingModeValidation.cs
- Graphics.cs
- DesignBindingValueUIHandler.cs
- BitmapEffectState.cs
- TextRangeProviderWrapper.cs
- SqlReorderer.cs
- HWStack.cs
- SqlDataSourceFilteringEventArgs.cs
- TagPrefixCollection.cs
- TextParentUndoUnit.cs
- AuthenticationService.cs
- HttpHandlersSection.cs
- PasswordPropertyTextAttribute.cs
- SystemWebCachingSectionGroup.cs
- DataGridViewElement.cs
- WebPartConnectVerb.cs
- HtmlTableCell.cs
- PageVisual.cs
- basenumberconverter.cs
- OdbcInfoMessageEvent.cs