Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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 [....] 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. // // ==--== //+---------------------------------------------------------------------------- // // 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; [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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IndicFontClient.cs
- StateMachineAction.cs
- MetadataProperty.cs
- DocumentViewerAutomationPeer.cs
- SplitterEvent.cs
- UserControl.cs
- InstanceData.cs
- RealizationDrawingContextWalker.cs
- ClientRuntimeConfig.cs
- PreservationFileWriter.cs
- WsdlParser.cs
- CommonProperties.cs
- WindowsSysHeader.cs
- ViewgenGatekeeper.cs
- Point.cs
- LinearGradientBrush.cs
- DefaultTraceListener.cs
- PipeStream.cs
- ToolboxBitmapAttribute.cs
- ThumbAutomationPeer.cs
- ZipFileInfo.cs
- CustomCredentialPolicy.cs
- XslAst.cs
- PolyQuadraticBezierSegment.cs
- SecureStringHasher.cs
- GeometryDrawing.cs
- BeginEvent.cs
- BamlTreeMap.cs
- ZipIOExtraFieldZip64Element.cs
- OleDbConnectionInternal.cs
- EpmTargetTree.cs
- CompilerLocalReference.cs
- AxHost.cs
- MaterializeFromAtom.cs
- PersonalizationState.cs
- SettingsSavedEventArgs.cs
- DataPager.cs
- RegexCharClass.cs
- BrushMappingModeValidation.cs
- DataServiceRequestException.cs
- CreationContext.cs
- IdleTimeoutMonitor.cs
- HttpCookieCollection.cs
- ConfigurationProperty.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- SecurityRuntime.cs
- DataGridLinkButton.cs
- RowType.cs
- PTProvider.cs
- Bits.cs
- SystemIcmpV6Statistics.cs
- Track.cs
- WorkflowDesignerMessageFilter.cs
- PixelShader.cs
- MetadataItemEmitter.cs
- OptimizerPatterns.cs
- XmlChildEnumerator.cs
- ProvidersHelper.cs
- GridViewHeaderRowPresenter.cs
- StrokeCollectionConverter.cs
- SID.cs
- PkcsUtils.cs
- TransactionChannelFactory.cs
- BitmapDecoder.cs
- ContextStack.cs
- StylusPointProperties.cs
- ManagementObject.cs
- StateDesigner.LayoutSelectionGlyph.cs
- UriWriter.cs
- Int16.cs
- DescriptionAttribute.cs
- LocalValueEnumerator.cs
- SynchronizationValidator.cs
- ComplexLine.cs
- TreeBuilderXamlTranslator.cs
- Vector3DKeyFrameCollection.cs
- KeyGestureValueSerializer.cs
- SendMailErrorEventArgs.cs
- ObjectQueryState.cs
- DataBoundLiteralControl.cs
- DbConnectionClosed.cs
- SingleResultAttribute.cs
- ConfigUtil.cs
- MessageHeaderT.cs
- GradientStop.cs
- newinstructionaction.cs
- ArrayList.cs
- FileStream.cs
- FamilyMapCollection.cs
- DataGridTextBox.cs
- CodeThrowExceptionStatement.cs
- HtmlGenericControl.cs
- TimeSpanFormat.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- CoordinationService.cs
- DeviceFilterEditorDialog.cs
- ImmutablePropertyDescriptorGridEntry.cs
- Util.cs
- DigestTraceRecordHelper.cs
- FlowLayoutPanel.cs